name: "Build Helper" on: workflow_dispatch env: GO_VERSION: "1.22.5" NODE_VERSION: "22.5.1" jobs: runbuild: strategy: matrix: include: - platform: "darwin" arch: "universal" runner: "macos-latest-xlarge" - platform: "linux" arch: "amd64" runner: "ubuntu-latest" - platform: "linux" arch: "arm64" runner: ubuntu-24.04-arm64-16core # - platform: "windows" # arch: "amd64" # runner: "windows-latest" runs-on: ${{ matrix.runner }} steps: - uses: actions/checkout@v4 - name: Install Linux Build Dependencies (Linux only) if: matrix.platform == 'linux' run: | sudo apt-get update sudo apt-get install --no-install-recommends -y libarchive-tools libopenjp2-tools rpm squashfs-tools - name: Upgrade AWS CLI (Mac only) # The pre-installed version of the AWS CLI has a segfault problem so we'll install it via Homebrew instead. if: matrix.platform == 'darwin' run: brew update && brew install awscli - name: Install FPM # The version of FPM that comes bundled with electron-builder doesn't include a Linux ARM target. Installing Gems onto the runner is super quick so we'll just do this for all targets. run: sudo gem install fpm - uses: actions/setup-go@v5 with: go-version: ${{env.GO_VERSION}} cache-dependency-path: | go.sum - uses: actions/setup-node@v4 with: node-version: ${{env.NODE_VERSION}} - name: Install yarn run: | corepack enable yarn install - name: Install Task uses: arduino/setup-task@v2 with: version: 3.x repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Set Version id: set-version run: echo "WAVETERM_VERSION=$(node "./version.cjs")" >> "$GITHUB_OUTPUT" - name: Build ${{ matrix.platform }}/${{ matrix.arch }} run: task package env: USE_SYSTEM_FPM: true # Ensure that the installed version of FPM is used rather than the bundled one. CSC_LINK: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_CERTIFICATE}} CSC_KEY_PASSWORD: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_CERTIFICATE_PWD }} APPLE_ID: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }} APPLE_APP_SPECIFIC_PASSWORD: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_NOTARIZATION_PWD }} APPLE_TEAM_ID: ${{ matrix.platform == 'darwin' && secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }} - name: Upload to S3 staging run: aws s3 cp make/ s3://waveterm-github-artifacts/staging-w2/${{ steps.set-version.outputs.WAVETERM_VERSION }}/ --recursive --exclude "*/*" --exclude "builder-*.yml" env: AWS_ACCESS_KEY_ID: "${{ secrets.S3_KEY_ID }}" AWS_SECRET_ACCESS_KEY: "${{ secrets.S3_KEY_SECRET }}" AWS_DEFAULT_REGION: us-west-2