name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
container:
image: fedora:43
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
dnf install -y gcc-c++ cmake pkgconf-pkg-config \
systemd-devel tar gzip
- name: Configure
run: cmake -B build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
- name: Build
run: cmake --build build --parallel
- name: Package CLI binary
run: |
mkdir -p build/dist
cp build/src/cli/whatcable-linux build/dist/
cd build/dist
tar czf ../whatcable-linux-cli-${GITHUB_REF_NAME}-x86_64.tar.gz whatcable-linux
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: release-assets
path: |
build/whatcable-linux-cli-*.tar.gz
release:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: release-assets
path: assets
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
body: |
## Release Assets
| File | Description |
|------|-------------|
| `whatcable-linux-cli-${{ github.ref_name }}-x86_64.tar.gz` | CLI binary. Extract and run `./whatcable-linux`. |
### Quick install
```bash
tar xzf whatcable-linux-cli-${{ github.ref_name }}-x86_64.tar.gz
sudo mv whatcable-linux /usr/local/bin/
```
files: |
assets/**/*.tar.gz