Skip to content
This repository has been archived by the owner on Jul 15, 2024. It is now read-only.

chore: docker deploy #58

chore: docker deploy

chore: docker deploy #58

Workflow file for this run

name: Deploy Next.js App
on:
push:
branches:
- main
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.actor }}/large-file-upload:latest
DOCKERFILE: ./deploy/Dockerfile
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup Nodejs
uses: actions/[email protected]
with:
node-version: 20
- run: node -v
- run: corepack enable pnpm
- run: corepack install
- run: pnpm -v
- run: pnpm install --frozen-lockfile
- run: pnpm test -- --run
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup Nodejs
uses: actions/[email protected]
with:
node-version: 20
- run: node -v
- run: corepack enable pnpm
- run: corepack install
- run: pnpm -v
- run: pnpm install --frozen-lockfile
- run: pnpm run build
publish:
name: Publish Image
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Login
run: |
echo ${{ secrets.PAT }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: Build and Push Image
run: |
docker build . -f ${{ env.DOCKERFILE }} -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
deploy:
needs: publish
name: Deploy Image
runs-on: ubuntu-latest
steps:
- name: Deploy to Kubernetes
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.VPS_HOST }}
username: ${{ secrets.VPS_USER }}
key: ${{ secrets.VPS_SSH_KEY }}
port: ${{ secrets.VPS_PORT }}
script: |
cd ${{ secrets.VPS_WORK_DIR }}
docker compose pull
docker compose up -d
exit