From b30e26a4e0b1ef293dd891ec01b79affcbcfb0d2 Mon Sep 17 00:00:00 2001 From: Jiho Lee Date: Thu, 4 Jul 2024 22:36:23 +0900 Subject: [PATCH] [#114] Add release workflow --- .github/workflows/pr_test.yml | 4 +-- .github/workflows/release.yml | 57 +++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/release.yml 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..bf86b9aa --- /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 --release + + - 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/release/rrdb${{ runner.os == 'Windows' && '.exe' || ''}}