From f5d4cc3f46db7b47baf33ac4e7a1d3c8a13593cc Mon Sep 17 00:00:00 2001 From: Vivek Rao Date: Fri, 17 Apr 2026 00:53:39 +0530 Subject: [PATCH] ops: add GHCR image build workflow and db:migrate script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add .github/workflows/docker.yml to build+push sigops-server and sigops-ui images to ghcr.io on v*.*.* tags and manual dispatch. - Add `db:migrate` script to server/package.json — production migration path (drizzle-kit migrate). Do NOT use `db:push` in production. --- .github/workflows/docker.yml | 55 ++++++++++++++++++++++++++++++++++++ server/package.json | 1 + 2 files changed, 56 insertions(+) create mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..4c27987 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,55 @@ +name: Docker + +on: + push: + tags: ['v*.*.*'] + workflow_dispatch: + +env: + REGISTRY: ghcr.io + IMAGE_PREFIX: ghcr.io/${{ github.repository_owner }} + +jobs: + build-server: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v4 + - uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - uses: docker/setup-buildx-action@v3 + - uses: docker/build-push-action@v5 + with: + context: ./server + file: ./server/Dockerfile + push: true + tags: | + ${{ env.IMAGE_PREFIX }}/sigops-server:latest + ${{ env.IMAGE_PREFIX }}/sigops-server:${{ github.ref_name }} + + build-ui: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v4 + - uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - uses: docker/setup-buildx-action@v3 + - uses: docker/build-push-action@v5 + with: + context: ./ui + file: ./ui/Dockerfile + push: true + tags: | + ${{ env.IMAGE_PREFIX }}/sigops-ui:latest + ${{ env.IMAGE_PREFIX }}/sigops-ui:${{ github.ref_name }} diff --git a/server/package.json b/server/package.json index 55f4725..87081c6 100644 --- a/server/package.json +++ b/server/package.json @@ -9,6 +9,7 @@ "start": "node dist/index.js", "db:generate": "drizzle-kit generate", "db:push": "drizzle-kit push", + "db:migrate": "drizzle-kit migrate", "db:seed": "tsx src/db/seed.ts", "test": "vitest run", "test:watch": "vitest",