diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..b3e8c79 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,66 @@ +name: Release + +on: + push: + branches: [ "main" ] + +jobs: + release: + name: release ${{ matrix.target }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - os: macos-11 + target: x86_64-apple-darwin + - os: macos-11 + target: aarch64-apple-darwin + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Get version + id: get_version + uses: SebRollen/toml-action@v1.2.0 + with: + file: Cargo.toml + field: package.version + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + profile: minimal + override: true + target: ${{ matrix.target }} + - name: Setup cache + uses: Swatinem/rust-cache@v2.7.3 + with: + key: ${{ matrix.target }} + - name: Build binary + uses: actions-rs/cargo@v1 + with: + command: build + args: --release --locked --target=${{ matrix.target }} --color=always --verbose + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.target }} + path: | + *.deb + *.tar.gz + *.zip + - name: Create release + if: startsWith(github.event.head_commit.message, 'chore(release)') + uses: softprops/action-gh-release@v2 + with: + draft: true + files: | + *.deb + *.tar.gz + *.zip + name: ${{ steps.get_version.outputs.value }} + tag_name: "" + generate_release_notes: true + \ No newline at end of file