Skip to content

Commit

Permalink
feat: add workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
bombnp committed Jul 21, 2024
1 parent 2d5b794 commit 7b1b8eb
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 0 deletions.
48 changes: 48 additions & 0 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Deployment

on:
push:
branches: [main]
workflow_dispatch:

permissions:
id-token: write
contents: read
packages: write

concurrency:
group: deploy
cancel-in-progress: false

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
- name: buildx
uses: docker/setup-buildx-action@v2
- name: login
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: build
id: build-and-push
uses: docker/build-push-action@v3
with:
push: true
tags: ghcr.io/webmastercamp/${{ github.event.repository.name }}:latest
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Deploy to deploys.app
uses: deploys-app/deploys-action@v1
with:
project: webmastercamp-jwc13
location: gke.cluster-rcf2
name: ${{ github.event.repository.name }}
image: ghcr.io/webmastercamp/${{ github.event.repository.name }}:latest
env:
DEPLOYS_AUTH_USER: ${{ secrets.DEPLOYS_AUTH_USER }}
DEPLOYS_AUTH_PASS: ${{ secrets.DEPLOYS_AUTH_PASS }}
32 changes: 32 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
FROM node:20-alpine as deps

WORKDIR /app

COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./
RUN \
if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
elif [ -f package-lock.json ]; then npm ci; \
elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm i --frozen-lockfile; \
else echo "Lockfile not found." && exit 1; \
fi

COPY . ./

FROM deps as builder
WORKDIR /app

COPY --from=deps /app/node_modules ./node_modules
COPY . .

RUN \
if [ -f yarn.lock ]; then yarn run build; \
elif [ -f package-lock.json ]; then npm run build; \
elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm run build; \
else echo "Lockfile not found." && exit 1; \
fi

FROM nginx:latest as prod

COPY --from=builder /app/dist /usr/share/nginx/html

CMD ["nginx", "-g", "daemon off;"]

0 comments on commit 7b1b8eb

Please sign in to comment.