aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/release.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/release.yml')
-rw-r--r--.github/workflows/release.yml62
1 files changed, 62 insertions, 0 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..720b337
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,62 @@
+name: Release
+on:
+ push:
+ tags:
+ - v*
+ branches:
+ - v*
+jobs:
+ release:
+ strategy:
+ matrix:
+ platform:
+ - os: ubuntu-latest
+ target: x86_64-unknown-linux-gnu
+ bin: viewercount
+ name: viewercount-${{ github.ref_name }}-linux-x86_64
+ - os: ubuntu-latest
+ target: aarch64-unknown-linux-gnu
+ bin: viewercount
+ name: viewercount-${{ github.ref_name }}-linux-aarch64
+ - os: windows-latest
+ target: x86_64-pc-windows-msvc
+ bin: viewercount.exe
+ name: viewercount-${{ github.ref_name }}-windows-x86_64
+ - os: macos-latest
+ target: x86_64-apple-darwin
+ bin: viewercount
+ name: viewercount-${{ github.ref_name }}-darwin-x86_64
+ runs-on: ${{ matrix.platform.os }}
+ steps:
+ - uses: actions/checkout@v4
+ - uses: Swatinem/rust-cache@v2
+ - name: Build binary
+ uses: houseabsolute/actions-rust-cross@v0
+ with:
+ target: ${{ matrix.platform.target }}
+ args: "--locked --release"
+ strip: true
+ - name: Package
+ shell: bash
+ run: |
+ mkdir ${{ matrix.platform.name }}
+ cp target/${{ matrix.platform.target }}/release/${{ matrix.platform.bin }} ${{ matrix.platform.name }}
+ cp LICENSE.txt ${{ matrix.platform.name }}
+ cp README.md ${{ matrix.platform.name }}
+ if [[ "${{ matrix.platform.os }}" == "windows-latest" ]]
+ then
+ 7z a ${{ matrix.platform.name }}.zip ${{ matrix.platform.name }}
+ else
+ tar czvf ${{ matrix.platform.name }}.tar.gz ${{ matrix.platform.name }}
+ fi
+ - name: Generate Changelog
+ run: utils/generate_changelog.sh > ${{ github.workspace }}-CHANGELOG.md
+ - name: Publish
+ uses: softprops/action-gh-release@v2
+ if: startsWith(github.ref, 'refs/tags/')
+ with:
+ body_path: ${{ github.workspace }}-CHANGELOG.md
+ fail_on_unmatched_files: true
+ files: viewercount-*
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}