name: Rust
permissions: write-all
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
CARGO_NET_GIT_FETCH_WITH_CLI: "true"
jobs:
create_release:
name: Create release
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
sha_short: ${{ steps.vars.outputs.sha_short }}
steps:
- uses: actions/checkout@v4
- name: Set outputs
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Check outputs
run: echo ${{ steps.vars.outputs.sha_short }}
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.vars.outputs.sha_short }}
release_name: Release ${{ steps.vars.outputs.sha_short }}
draft: false
prerelease: false
build:
name: Build release
needs: create_release
strategy:
matrix:
target:
- x86_64-unknown-linux-musl
- x86_64-apple-darwin
include:
- target: x86_64-unknown-linux-musl
os: ubuntu-latest
- target: x86_64-apple-darwin
os: macos-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: prepare
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global url."https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/yoffa-app/".insteadOf "https://github.com/yoffa-app/"
- name: Build
run: cargo build --release --verbose
- name: move
if: matrix.target == 'x86_64-unknown-linux-musl'
run: |
ls target/
ls target/release/
mv target/release/libderive_pb.so target/release/libderive_pb-${{ matrix.target }}.so
- name: Release
if: matrix.target == 'x86_64-unknown-linux-musl'
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ needs.create_release.outputs.sha_short }}
files: |
target/release/libderive_pb-${{ matrix.target }}.so
- name: move
if: matrix.target == 'x86_64-apple-darwin'
run: |
ls target/
ls target/release/
mv target/release/libderive_pb.dylib target/release/libderive_pb-${{ matrix.target }}.dylib
- name: Release
if: matrix.target == 'x86_64-apple-darwin'
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ needs.create_release.outputs.sha_short }}
files: |
target/release/libderive_pb-${{ matrix.target }}.dylib