name: build on: push: tags: - "v*" env: CARGO_TERM_COLOR: always jobs: release: name: Create Release runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Create Release uses: actions/create-release@latest env: GITHUB_TOKEN: ${{ secrets.GITEA_TOKEN }} with: tag_name: ${{ gitea.ref }} release_name: "${{ gitea.event.repository.name }}-${{ gitea.ref }}" draft: false prerelease: false publish: name: publish needs: - release strategy: fail-fast: true matrix: include: - suffix: windows-x86_64 platform: windows-2022 archive: zip name: x86_64-pc-windows-msvc - suffix: linux-x86_64 platform: ubuntu-latest archive: tar.gz name: x86_64-unknown-linux-gnu runs-on: ${{ matrix.platform }} steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Rust toolchain and cache # if: matrix.platform != 'windows-2022' uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: nightly # - name: Ensure rust is up to date # if: matrix.platform == 'windows-2022' # run: | # rustup update # rustup toolchain install nightly - name: Create output directory run: mkdir -f output - name: Build release run: cargo +nightly -Z unstable-options b -r --artifact-dir ./output - name: Collect windows artifacts if: matrix.platform == 'windows-2022' run: | cp -r -fo assets $env:GITEA_WORKSPACE/output/ Compress-Archive -Path $env:GITEA_WORKSPACE/output/* -DestinationPath $env:GITEA_WORKSPACE/${{ gitea.event.repository.name }}_${{ matrix.name }}.${{ matrix.archive }} - name: Collect linux/macos artifacts if: matrix.platform != 'windows-latest' run: | cp -rf assets ${GITEA_WORKSPACE}/output/ tar -czvf ${GITHUB_WORKSPACE}/${{ gitea.event.repository.name }}_${{ matrix.name }}.${{ matrix.archive }} -C ${GITHUB_WORKSPACE}/output/ . - name: Upload artifacts uses: ncipollo/release-action@v1 with: allowUpdates: true artifacts: "${{ gitea.event.repository.name }}_${{ matrix.name }}.${{ matrix.archive }}"