OPEN-7: Route/latency tools — region wiring, ICE policy, richer region pings #391
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: auto-build | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| paths: | |
| - "opennow-stable/**" | |
| - ".github/workflows/auto-build.yml" | |
| push: | |
| branches: | |
| - main | |
| - dev | |
| paths: | |
| - "opennow-stable/**" | |
| - ".github/workflows/auto-build.yml" | |
| concurrency: | |
| group: auto-build-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| name: ${{ matrix.label }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - label: windows | |
| os: blacksmith-4vcpu-windows-2025 | |
| builder_args: "--win nsis portable" | |
| - label: macos-x64 | |
| os: macos-latest | |
| builder_args: "--mac dmg zip --x64" | |
| - label: macos-arm64 | |
| os: macos-latest | |
| builder_args: "--mac dmg zip --arm64" | |
| - label: linux-x64 | |
| os: blacksmith-4vcpu-ubuntu-2404 | |
| builder_args: "--linux AppImage deb --x64" | |
| - label: linux-arm64 | |
| os: blacksmith-4vcpu-ubuntu-2404-arm | |
| builder_args: "--linux AppImage deb --arm64" | |
| defaults: | |
| run: | |
| working-directory: opennow-stable | |
| env: | |
| CSC_IDENTITY_AUTO_DISCOVERY: "false" | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| ELECTRON_CACHE: ${{ github.workspace }}/.cache/electron | |
| ELECTRON_BUILDER_CACHE: ${{ github.workspace }}/.cache/electron-builder | |
| npm_config_audit: "false" | |
| npm_config_fund: "false" | |
| # Use system fpm on arm64 (no prebuilt binaries available) | |
| USE_SYSTEM_FPM: ${{ matrix.label == 'linux-arm64' && 'true' || 'false' }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: "**/package-lock.json" | |
| - name: Cache Electron binaries | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ${{ github.workspace }}/.cache/electron | |
| ${{ github.workspace }}/.cache/electron-builder | |
| key: ${{ runner.os }}-electron-${{ hashFiles('**/package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-electron- | |
| - name: Install Linux packaging tools | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y fakeroot rpm | |
| - name: Install FPM for arm64 deb builds | |
| if: matrix.label == 'linux-arm64' | |
| run: sudo apt-get install -y ruby ruby-dev build-essential && sudo gem install fpm | |
| - name: Install dependencies | |
| run: npm ci --prefer-offline --no-audit --progress=false | |
| - name: Build app bundles | |
| run: npm run build | |
| - name: Package installers | |
| run: npx electron-builder --publish never ${{ matrix.builder_args }} | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: opennow-stable-${{ matrix.label }} | |
| path: | | |
| opennow-stable/dist-release/*.exe | |
| opennow-stable/dist-release/*.dmg | |
| opennow-stable/dist-release/*.zip | |
| opennow-stable/dist-release/*.AppImage | |
| opennow-stable/dist-release/*.deb | |
| if-no-files-found: error |