Bump version to 0.1.0 #77
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| push: | |
| branches: ["*"] | |
| pull_request: | |
| jobs: | |
| build-linux: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: Ubuntu (latest) | |
| image: ubuntu:latest | |
| - name: Ubuntu (24.04 LTS) | |
| image: ubuntu:24.04 | |
| - name: Debian (stable) | |
| image: debian:stable | |
| - name: Debian (oldstable) | |
| image: debian:oldstable | |
| - name: Fedora (latest) | |
| image: fedora:latest | |
| - name: Rocky Linux 9 | |
| image: rockylinux:9 | |
| - name: Alpine (latest) | |
| image: alpine:latest | |
| - name: openSUSE Leap | |
| image: opensuse/leap:latest | |
| - name: Arch Linux | |
| image: archlinux:latest | |
| name: ${{ matrix.name }} | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ${{ matrix.image }} | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Install build tools (apt) | |
| if: contains(matrix.image, 'ubuntu') || contains(matrix.image, 'debian') | |
| run: | | |
| apt-get update | |
| apt-get install -y build-essential git | |
| - name: Install build tools (dnf) | |
| if: contains(matrix.image, 'fedora') || contains(matrix.image, 'rockylinux') | |
| run: | | |
| dnf install -y gcc make git | |
| - name: Install build tools (apk) | |
| if: contains(matrix.image, 'alpine') | |
| run: | | |
| apk add build-base git linux-headers | |
| - name: Install build tools (zypper) | |
| if: contains(matrix.image, 'opensuse') | |
| run: | | |
| zypper --non-interactive --gpg-auto-import-keys refresh || true | |
| zypper install -y gcc make git | |
| - name: Install build tools (pacman) | |
| if: contains(matrix.image, 'archlinux') | |
| run: | | |
| pacman -Sy --noconfirm gcc make git | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Build | |
| run: make | |
| - name: Verify binary | |
| run: ./thinproxy -V | |
| build-freebsd: | |
| name: FreeBSD | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: vmactions/freebsd-vm@v1 | |
| with: | |
| usesh: true | |
| run: make && ./thinproxy -V | |
| build-netbsd: | |
| name: NetBSD | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: vmactions/netbsd-vm@v1 | |
| with: | |
| usesh: true | |
| run: make && ./thinproxy -V | |
| build-dragonflybsd: | |
| name: DragonFlyBSD | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: vmactions/dragonflybsd-vm@v1 | |
| with: | |
| usesh: true | |
| run: make && ./thinproxy -V | |
| tag-release: | |
| name: Tag and release on version change | |
| runs-on: ubuntu-latest | |
| if: github.ref == 'refs/heads/master' && github.event_name == 'push' | |
| permissions: | |
| contents: write | |
| actions: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Create tag, release, and trigger asset builds | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| ver=$(sed -n 's/^#define THINPROXY_VERSION.*"\(.*\)"/\1/p' thinproxy.c) | |
| if [ -z "$ver" ]; then | |
| echo "Could not extract version" | |
| exit 1 | |
| fi | |
| if ! git rev-parse "v${ver}" >/dev/null 2>&1; then | |
| echo "Creating tag v${ver}" | |
| git tag "v${ver}" | |
| git push origin "v${ver}" | |
| fi | |
| if gh release view "v${ver}" --repo "${{ github.repository }}" >/dev/null 2>&1; then | |
| echo "Release v${ver} already exists, skipping" | |
| exit 0 | |
| fi | |
| echo "Creating release v${ver}" | |
| gh release create "v${ver}" \ | |
| --repo "${{ github.repository }}" \ | |
| --title "v${ver}" \ | |
| --generate-notes | |
| echo "Triggering asset builds" | |
| gh workflow run release.yml \ | |
| --repo "${{ github.repository }}" \ | |
| -f ref="v${ver}" \ | |
| -f release_tag="v${ver}" | |
| build-macos: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, macos-26] | |
| name: macOS (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Build | |
| run: make | |
| - name: Verify binary | |
| run: ./thinproxy -V |