diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9da0646..edabbaa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -65,33 +65,33 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - # - name: Build and Push Image - # uses: docker/build-push-action@v6 - # with: - # file: Dockerfile - # push: true - # tags: ${{ steps.metadata.outputs.tags }} - # labels: ${{ steps.metadata.outputs.labels }} - # build-args: | - # DATABASE_URL=${{ secrets.DATABASE_URL }} + - name: Build and Push Image + uses: docker/build-push-action@v6 + with: + file: Dockerfile + push: true + tags: ${{ steps.metadata.outputs.tags }} + labels: ${{ steps.metadata.outputs.labels }} + build-args: | + DATABASE_URL=${{ secrets.DATABASE_URL }} - # - name: Install dependencies - # run: pnpm install --frozen-lockfile + - name: Install dependencies + run: pnpm install --frozen-lockfile - # - name: Run Migrations - # run: pnpm --filter amoc payload migrate - # env: - # DATABASE_URL: ${{ secrets.DATABASE_URL }} + - name: Run Migrations + run: pnpm --filter amoc payload migrate + env: + DATABASE_URL: ${{ secrets.DATABASE_URL }} - # - name: Setup Nomad - # uses: hashicorp/setup-nomad@main - # with: - # nomad_version: '1.10.5' + - name: Setup Nomad + uses: hashicorp/setup-nomad@main + with: + nomad_version: '1.10.5' - # - name: Deploy Job to Nomad - # run: | - # export DEPLOYMENT_VERSION="${GITHUB_SHA:0:7}-$(date +%s)" - # nomad job run -var="deployment_version=$DEPLOYMENT_VERSION" infra/nomad/portfolio.nomad.hcl - # env: - # NOMAD_ADDR: ${{ vars.NOMAD_ADDR }} - # NOMAD_TOKEN: ${{ secrets.NOMAD_TOKEN }} \ No newline at end of file + - name: Deploy Job to Nomad + run: | + export DEPLOYMENT_VERSION="${GITHUB_SHA:0:7}-$(date +%s)" + nomad job run -var="deployment_version=$DEPLOYMENT_VERSION" infra/nomad/portfolio.nomad.hcl + env: + NOMAD_ADDR: ${{ vars.NOMAD_ADDR }} + NOMAD_TOKEN: ${{ secrets.NOMAD_TOKEN }} \ No newline at end of file diff --git a/infra/portfolio.nomad.hcl b/infra/portfolio.nomad.hcl new file mode 100644 index 0000000..529f732 --- /dev/null +++ b/infra/portfolio.nomad.hcl @@ -0,0 +1,70 @@ +variable "deployment_version" { + type = string + description = "The deployment version from CI/CD" + default = "unknown" +} + +job "portfolio_v2" { + datacenters = ["dc1"] + type = "service" + + meta { + version = var.deployment_version + } + + group "portfolio.v2" { + count = 1 + + network { + port "web" { + to = 3000 + } + } + + service { + name = "portfolio_v2" + port = "web" + # tags = [ + # "traefik.enable=true", + # "traefik.http.routers.portfolio-v2.rule=Host(`liampietralla.com`)", + # "traefik.http.routers.portfolio-v2.entrypoints=websecure", + # "traefik.http.routers.portfolio-v2.tls.certresolver=letsencrypt" + # ] + + check { + type = "http" + path = "/api/health" + interval = "10s" + timeout = "3s" + } + } + + task "portfolio_v2" { + driver = "docker" + + config { + image = "liamsgit.dev/liampietralla/liam-portfolio:latest" + force_pull = true + ports = ["web"] + } + + template { + data = <