name: Build (Dev) on: push: branches: - dev workflow_dispatch: env: GO_VERSION: "1.23" NODE_VERSION: "20" BINARY_NAME: remoterig jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} - name: Setup Node uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - name: Build React frontend run: | npm ci npm run build - name: Build Go binary (ARM64 cross-compile) run: | CGO_ENABLED=0 GOOS=linux GOARCH=arm64 \ go build -ldflags="-s -w -X main.version=${GITHUB_SHA:0:8}" \ -o ${{ env.BINARY_NAME }} ./cmd/server - name: Upload build artifact uses: actions/upload-artifact@v4 with: name: ${{ env.BINARY_NAME }} path: ${{ env.BINARY_NAME }} retention-days: 5 - name: Trigger deploy workflow if: success() uses: actions/github-script@v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | await github.rest.repos.createDispatchEvent({ owner: context.repo.owner, repo: context.repo.repo, event_type: 'dev-build-success', client_payload: { sha: context.sha, ref: context.ref } })