name: Build Binaries on: pull_request: branches: - '*' paths-ignore: - 'docs/**' - '**.md' - 'script/gcg/**' env: GO_VERSION: '1.23' CGO_ENABLED: 0 jobs: build-webui: runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup node uses: actions/setup-node@v4 with: node-version-file: webui/.nvmrc cache: yarn cache-dependency-path: webui/yarn.lock - name: Build webui working-directory: ./webui run: | yarn install yarn build - name: Package webui run: | tar czvf webui.tar.gz ./webui/static/ - name: Artifact webui uses: actions/upload-artifact@v4 with: name: webui.tar.gz path: webui.tar.gz build: runs-on: ubuntu-latest strategy: matrix: os: [ darwin, freebsd, linux, openbsd, windows ] arch: [ amd64, arm64 ] include: - os: freebsd arch: 386 - os: linux arch: 386 - os: linux arch: arm goarm: 6 - os: linux arch: arm goarm: 7 - os: linux arch: ppc64le - os: linux arch: riscv64 - os: linux arch: s390x - os: openbsd arch: 386 - os: windows arch: 386 needs: - build-webui steps: - name: Check out code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Go ${{ env.GO_VERSION }} uses: actions/setup-go@v5 env: ImageOS: ${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.goarm }} with: go-version: ${{ env.GO_VERSION }} - name: Artifact webui uses: actions/download-artifact@v4 with: name: webui.tar.gz - name: Untar webui run: tar xvf webui.tar.gz - name: Build env: GOOS: ${{ matrix.os }} GOARCH: ${{ matrix.arch }} GOARM: ${{ matrix.goarm }} run: make binary