name: Publish on: push: tags: - 'v*' defaults: run: working-directory: ./decryptor jobs: publish: name: ${{ matrix.target }} runs-on: ${{ matrix.os }} strategy: matrix: include: - os: ubuntu-latest target: x86_64-unknown-linux-gnu use-cross: false - os: ubuntu-latest target: aarch64-unknown-linux-gnu use-cross: true - os: macos-latest target: aarch64-apple-darwin use-cross: false - os: macos-12 target: x86_64-apple-darwin use-cross: false steps: - uses: actions/checkout@v4 - name: Set the version shell: bash run: | echo "DECRYPTOR_VERSION=$GITHUB_REF_NAME" >> $GITHUB_ENV echo "version is: ${{ env.DECRYPTOR_VERSION }}" - name: Install Rust uses: dtolnay/rust-toolchain@stable with: targets: ${{ matrix.target }} - name: Setup native compilation if: ${{ matrix.use-cross == false }} shell: bash run: | if [[ "${{ matrix.os }}" == "ubuntu-latest" ]]; then sudo apt-get update && sudo apt-get install -y libssl-dev fi echo "CARGO=cargo" >> $GITHUB_ENV - name: Setup cross compilation if: ${{ matrix.use-cross == true }} shell: bash run: | dir="$RUNNER_TEMP/cross-download" mkdir "$dir" echo "$dir" >> $GITHUB_PATH cd "$dir" curl -LO "https://github.com/cross-rs/cross/releases/download/v0.2.5/cross-x86_64-unknown-linux-musl.tar.gz" tar xf cross-x86_64-unknown-linux-musl.tar.gz echo "CARGO=cross" >> $GITHUB_ENV - name: Build shell: bash run: | $CARGO --version $CARGO build --release --locked --target ${{ matrix.target }} - name: Setup archive shell: bash run: | staging="decryptor-${{ env.DECRYPTOR_VERSION }}-${{ matrix.target }}" mkdir "$staging" cp "target/${{ matrix.target }}/release/decryptor" "$staging/" tar czf "$staging.tar.gz" "$staging" echo "ASSET=$staging.tar.gz" >> $GITHUB_ENV - name: Upload the binaries uses: svenstaro/upload-release-action@2.9.0 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: ./decryptor/${{ env.ASSET }} asset_name: ${{ env.ASSET }} tag: ${{ github.ref }}