Some checks failed
Build and Deploy NextJS SculptedArc Website / build-and-deploy (push) Failing after 2m2s
52 lines
1.7 KiB
YAML
52 lines
1.7 KiB
YAML
name: Build and Deploy NextJS SculptedArc Website
|
|
on: [push]
|
|
|
|
jobs:
|
|
|
|
build-and-deploy:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
defaults:
|
|
run:
|
|
shell: sh
|
|
|
|
steps:
|
|
- name: Check out repository code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v4
|
|
|
|
# 1. Log into your self-hosted gitea container storage layer
|
|
- name: Log in to gitea Container Registry
|
|
uses: docker/login-action@v4
|
|
with:
|
|
registry: gitea.sculpted-arc.co.uk # Change to your gitea domain
|
|
username: ${{ gitea.actor }}
|
|
password: ${{ secrets.TOKEN_GITEA }} # Store a personal access token in your repo secrets for security
|
|
|
|
# 2. Build the Dockerfile and upload the compiled app image
|
|
- name: Build and Push Docker Image
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: gitea.sculpted-arc.co.uk/${{ gitea.repository }}:latest
|
|
|
|
# 3. Securely SSH to the host using masked secrets
|
|
- name: Deploy to Server via SSH
|
|
uses: appleboy/ssh-action@v1.0.3
|
|
with:
|
|
host: ${{ secrets.SERVER_HOST }}
|
|
username: root
|
|
key: ${{ secrets.SSH_PRIVATE_KEY }} # Completely invisible to anyone viewing code
|
|
script: |
|
|
cd /home/james/docker/sculpted-arc-site
|
|
|
|
# Authenticate the host machine to pull from gitea's registry
|
|
docker login -u ${{ gitea.actor }} -p ${{ secrets.TOKEN_GITEA }} gitea.sculpted-arc.co.uk
|
|
|
|
# Pull down the fresh image we just built and restart gracefully
|
|
docker compose pull
|
|
docker compose up -d --remove-orphans |