--- name: Release packages on: push: tags: - 'v*' env: CARGO_TERM_COLOR: always jobs: build-and-release-artifact: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 # Cache cargo registry - name: Hash the lock file uses: https://gitea.com/seepine/hash-files@v1 id: get-hash with: patterns: | **/Cargo.lock - name: Setup rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: stable cache-shared-key: cargo-${{ steps.get-hash.outputs.hash }} matcher: false - name: Build application run: cargo build --release --all-features --workspace --all-targets - name: Package application ru8n: cargo package --all-features --workspace --allow-dirty - name: Add registry to cargo config run: echo -e '[registries.gitea]\nindex = "sparse+https://git.noahknegt.com/api/packages/${{ github.repository_owner }}/cargo/"\n' > ~/.cargo/config.toml - name: Publish to cargo registry run: cargo publish --no-verify --registry gitea --token ${{ secrets.CARGO_REGISTRY_TOKEN }} env: CARGO_NET_GIT_FETCH_WITH_CLI: true CARGO_NET_RETRY: 2 CARGO_NET_TIMEOUT: 120