name: Build (Dev) on: push: branches: - dev workflow_dispatch: env: BINARY_NAME: remoterig jobs: build: runs-on: go-react steps: - name: Checkout uses: actions/checkout@v4 # The go-react image ships Go + Node, so no setup-go/setup-node: # those download tool-cache binaries that don't run on this runner. - name: Toolchain versions run: | go version 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 # Pull-based deploy: publish the binary to a rolling "dev" release. # The Pi polls this release and self-updates (scripts/pi-update.sh); # the runner never needs to reach the closed RemoteRig network. # Done in Node (runner image has no curl/jq/sudo; Node is present). - name: Publish to rolling dev release env: TOKEN: ${{ secrets.GITHUB_TOKEN }} SERVER: ${{ github.server_url }} REPO: ${{ github.repository }} SHA: ${{ github.sha }} run: node .gitea/scripts/publish-release.mjs