name: tinyproxy CI on: workflow_dispatch: push: branches: ["main"] pull_request: branches: ["main"] jobs: linux-musl-x86_64: name: Linux musl x86_64 static runs-on: ubuntu-latest container: image: alpine:3.23 steps: - uses: actions/checkout@v4 - name: Install deps run: | apk add --no-cache \ build-base \ libevent-dev \ libevent-static \ python3 \ haproxy - name: Build run: make clean all - name: Verify static binary run: | apk add --no-cache pax-utils file bin/tinyproxy scanelf -n bin/tinyproxy if scanelf -n bin/tinyproxy | grep -q 'lib'; then echo "binary has dynamic library dependencies" exit 1 fi - name: Test run: make test linux-musl-arm64: name: Linux musl arm64 static runs-on: ubuntu-24.04-arm container: image: alpine:3.23 steps: - uses: actions/checkout@v4 - name: Install deps run: | apk add --no-cache \ build-base \ libevent-dev \ libevent-static \ python3 \ haproxy - name: Build run: make clean all - name: Verify static binary run: | apk add --no-cache pax-utils file bin/tinyproxy scanelf -n bin/tinyproxy if scanelf -n bin/tinyproxy | grep -q 'lib'; then echo "binary has dynamic library dependencies" exit 1 fi - name: Test run: make test macos: name: macOS build runs-on: macos-15 steps: - uses: actions/checkout@v4 - name: Install deps run: | brew update brew install libevent - name: Build run: make clean all STATIC=0 - name: Test run: make test windows: name: Windows build runs-on: windows-2022 continue-on-error: true steps: - uses: actions/checkout@v4 - name: Set up MSYS2 uses: msys2/setup-msys2@v2 with: msystem: UCRT64 update: true install: >- base-devel mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-pkgconf mingw-w64-ucrt-x86_64-libevent mingw-w64-ucrt-x86_64-python - name: Build shell: msys2 {0} run: | make clean make all - name: Test shell: msys2 {0} run: | make test