name: Build and Push on: push: branches: - main jobs: build: runs-on: build-htz-01 strategy: fail-fast: false matrix: include: - goos: linux goarch: amd64 artifact: nucleus steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: '22' - name: Build Frontend run: | cd frontend npm install npm run build - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Build Backend env: GOOS: ${{ matrix.goos }} GOARCH: ${{ matrix.goarch }} run: go build -o "${{ matrix.artifact }}" ./cmd/nucleus - name: Upload to Cloudflare R2 env: AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: auto R2_ENDPOINT_URL: ${{ secrets.R2_ENDPOINT_URL }} run: | aws s3 cp "${{ matrix.artifact }}" "s3://apps/${{ matrix.artifact }}" \ --endpoint-url $R2_ENDPOINT_URL