diff --git a/.github/workflows/pr_test.yml b/.github/workflows/pr_test.yml index 78c2f368..0e0f14fc 100644 --- a/.github/workflows/pr_test.yml +++ b/.github/workflows/pr_test.yml @@ -36,6 +36,6 @@ jobs: - name: Upload binary as artifact uses: actions/upload-artifact@v4 with: - name: rrdb${{ runner.os == 'Windows' && '.exe' || ''}} - path: target/build/rrdb${{ runner.os == 'Windows' && '.exe' || ''}} + name: ${{ runner.os }}-rrdb${{ runner.os == 'Windows' && '.exe' || ''}} + path: target/debug/rrdb${{ runner.os == 'Windows' && '.exe' || ''}} if-no-files-found: error diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..9adfb75a --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,57 @@ +name: Release + +on: + push: + tags: + - 'v**' + +env: + CARGO_TERM_COLOR: always + +jobs: + create-release: + name: Create release + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - run: gh release create ${{ github.ref_name }} + continue-on-error: true + env: + GH_TOKEN: ${{ github.token }} + upload-binaries-to-release: + name: Upload + strategy: + max-parallel: 3 + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + toolchain: + - stable + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v3 + + - uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml') }} + + - run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }} + + - run: cargo build --verbose + + - name: Upload binary to release + continue-on-error: true + run: > + mv $file $name && + gh release upload ${{ github.ref_name }} $name + shell: + bash + env: + GH_TOKEN: ${{ github.token }} + name: ${{ runner.os }}-rrdb${{ runner.os == 'Windows' && '.exe' || ''}} + file: target/debug/rrdb${{ runner.os == 'Windows' && '.exe' || ''}}