name: "Build Helper" on: workflow_dispatch env: GO_VERSION: "1.22.0" NODE_VERSION: "21.5.0" jobs: runbuild: strategy: matrix: include: - platform: "darwin" arch: "universal" runner: "macos-latest-xlarge" scripthaus: "build-package" - platform: "linux" arch: "amd64" runner: "ubuntu-latest" scripthaus: "build-package-linux" runs-on: ${{ matrix.runner }} steps: - uses: actions/checkout@v4 - uses: actions/checkout@v4 with: repository: scripthaus-dev/scripthaus path: scripthaus - 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 - uses: actions/setup-go@v5 with: go-version: ${{env.GO_VERSION}} cache-dependency-path: | wavesrv/go.sum waveshell/go.sum scripthaus/go.sum - name: Install Scripthaus run: | go work use ./scripthaus; cd scripthaus; go get ./...; CGO_ENABLED=1 go build -o scripthaus cmd/main.go - uses: actions/setup-node@v4 with: node-version: ${{env.NODE_VERSION}} cache: "yarn" - name: Set Version id: set-version run: | VERSION=$(node -e 'console.log(require("./version.js"))') echo "WAVETERM_VERSION=${VERSION}" >> "$GITHUB_OUTPUT" - name: Install Yarn Dependencies run: yarn --frozen-lockfile - name: Build ${{ matrix.platform }}/${{ matrix.arch }} run: ./scripthaus/scripthaus run ${{ matrix.scripthaus }} env: GOARCH: ${{ matrix.arch }} 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/${{ steps.set-version.outputs.WAVETERM_VERSION }}/ --recursive --exclude "*/*" --exclude "builder-*.yml" env: AWS_ACCESS_KEY_ID: "${{ secrets.S3_USERID }}" AWS_SECRET_ACCESS_KEY: "${{ secrets.S3_SECRETKEY }}" AWS_DEFAULT_REGION: us-west-2