name: "Build Helper" on: workflow_dispatch env: GO_VERSION: "1.21.5" NODE_VERSION: "21.5.0" jobs: runbuild: outputs: WAVETERM_VERSION: ${{ steps.set-version.outputs.WAVETERM_VERSION }} 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 if: matrix.platform == 'linux' run: | sudo apt-get update sudo apt-get install 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 }} - uses: actions/upload-artifact@v4 with: name: waveterm-build-${{ matrix.platform }} path: make/*.* # only upload files from the make directory, not subdirectories retention-days: 2 upload: name: "Upload Builds" runs-on: ubuntu-latest needs: [runbuild] steps: - uses: actions/download-artifact@v4 with: merge-multiple: true path: buildtemp - name: Set `version.txt` run: | echo "${{ needs.runbuild.outputs.WAVETERM_VERSION }}" >> buildtemp/version.txt - name: Zip Builds run: (cd buildtemp; zip -q ../waveterm-builds.zip *) - name: Upload to S3 run: aws s3 cp waveterm-builds.zip s3://waveterm-github-artifacts/ env: AWS_ACCESS_KEY_ID: "${{ secrets.S3_USERID }}" AWS_SECRET_ACCESS_KEY: "${{ secrets.S3_SECRETKEY }}" AWS_DEFAULT_REGION: us-west-2