diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..1f75b97 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,52 @@ +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