name: Publish Linux Packages on: workflow_dispatch: jobs: build: strategy: fail-fast: false matrix: include: - arch: amd64 runner: ubuntu-24.04 - arch: arm64 runner: ubuntu-24.04-arm runs-on: ${{ matrix.runner }} steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Setup Node uses: actions/setup-node@v4 with: node-version: 20 cache: npm cache-dependency-path: frontend/package-lock.json - name: Install Linux build dependencies run: | sudo apt-get update sudo apt-get install -y \ libgtk-3-dev \ libwebkit2gtk-4.1-dev \ libayatana-appindicator3-dev \ dpkg-dev \ fakeroot - name: Install Wails CLI run: go install github.com/wailsapp/wails/v2/cmd/wails@v2.11.0 - name: Add Go bin to PATH run: echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH" - name: Build Linux packages run: bash publish/linux/publish-linux.sh --arch ${{ matrix.arch }} - name: Validate deb package metadata run: | set -euo pipefail deb_file="$(ls -1 publish/output/*_${{ matrix.arch }}.deb | head -n 1)" echo "Validating: $deb_file" dpkg-deb -I "$deb_file" dpkg-deb -c "$deb_file" >/dev/null - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: ant-browser-linux-${{ matrix.arch }} path: | publish/output/*_${{ matrix.arch }}.deb publish/output/*-linux-${{ matrix.arch }}.tar.gz