diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..c759021 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,70 @@ +name: Build and Push Container + +on: + push: + branches: + - '**' + pull_request: + branches: + - '**' + workflow_dispatch: + +jobs: + build: + name: Build App + runs-on: ubuntu-latest + + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + + - name: Setup PNPM + uses: pnpm/action-setup@v4 + + - name: Install Dependencies + run: pnpm i --frozen-lockfile + + - name: Build App + run: pnpm run build + + publish: + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + name: Publish App + runs-on: ubuntu-latest + needs: build + + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + + - name: Setup Docker Metadata + uses: docker/metadata-action@v5 + id: metadata + with: + images: liamsgit.dev/LiamPietralla/liam-portfolio + tags: | + type=raw,value=latest + + - name: Login To Docker Registry + uses: docker/login-action@v3 + with: + registry: liamsgit.dev + username: ${{ secrets.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_PASSWORD }} + + - 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 }} + diff --git a/src/app/api/health/route.ts b/src/app/api/health/route.ts index 20918e3..32aafe5 100644 --- a/src/app/api/health/route.ts +++ b/src/app/api/health/route.ts @@ -1,9 +1,10 @@ +import pkg from "../../../../package.json"; + export async function GET() { - const json = require("../../../../package.json"); const response = { "status": "Healthy", - "version": json.version - } + "version": pkg.version + }; return new Response(JSON.stringify(response), { status: 200, headers: {