Skip to content

Force revalidate projects page on project update #70

Force revalidate projects page on project update

Force revalidate projects page on project update #70

Workflow file for this run

name: Build and deploy Vector Interior Design Website
on:
push:
branches:
- nextjs
paths-ignore:
- "**/*.md"
- "**/docs/*"
- "**/graphql.yml"
- "**/*LICENSE"
- ".vscode"
workflow_dispatch:
permissions:
contents: read
jobs:
deploy:
name: Build and deploy Vector site
runs-on: ubuntu-latest
steps:
- name: Checkout locally
if: ${{ env.ACT }}
uses: actions/checkout@v4
with:
repository: Maypher/Vector-Interior-Design
ref: "dev"
token: "${{ secrets.GITHUB_PAT }}"
- name: Checkout
if: ${{ !env.ACT }}
uses: actions/checkout@v4
- name: Setup ssh key
run: |
ssh_key="${{ secrets.ssh_key }}"
set -e
mkdir -p ~/.ssh
echo "$ssh_key" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ip=$(echo "${{ secrets.ssh_connection }}" | cut -d'@' -f2)
ssh-keyscan -H "$ip" >> ~/.ssh/known_hosts
- name: Make directories
run: |
ssh -i ~/.ssh/id_rsa ${{ secrets.ssh_connection }} "
set -e
mkdir -p ~/vectorapp/vector-portfolio
"
- name: Install dependencies locally
if: ${{ env.ACT }}
run: |
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
apt-get update && apt-get -y install rsync pigz apache2-utils docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- name: Copy docker-compose and env variables
run: |
mkdir -p .secrets
rsync -aqc docker-compose.yml ${{ secrets.ssh_connection }}:~/vectorapp/vector-portfolio/
ssh -i ~/.ssh/id_rsa ${{ secrets.ssh_connection }} "
cd ~/vectorapp/vector-portfolio/
mkdir -p .secrets
cd .secrets
touch payload-secret.txt
touch postgres-password.txt
touch email-password.txt
echo '${{ secrets.payload_secret }}' > payload-secret.txt
echo '${{ secrets.postgres_password }}' > postgres-password.txt
echo '${{ secrets.email_password }}' > email-password.txt
"
- name: Build and push changes
run: |
export DOMAIN="${{ vars.DOMAIN }}"
export EMAIL_USER="${{ vars.EMAIL_USER }}"
export SMTP_HOST="${{ vars.SMTP_HOST }}"
docker compose build
docker image ls
docker save -o payload.tar vector-portfolio-payload:latest
docker save -o nginx.tar vector-portfolio-nginx:latest
pigz payload.tar
pigz nginx.tar
rsync -aqc payload.tar.gz ${{ secrets.ssh_connection }}:~/vectorapp/vector-portfolio/
rsync -aqc nginx.tar.gz ${{ secrets.ssh_connection }}:~/vectorapp/vector-portfolio/
- name: Pull changes
run: |
ssh -i ~/.ssh/id_rsa ${{ secrets.ssh_connection }} "
cd ~/vectorapp/vector-portfolio
docker rmi -f vector-portfolio-nginx:latest
docker rmi -f vector-portfolio-payload:latest
docker load -q -i payload.tar.gz
docker load -q -i nginx.tar.gz
rm payload.tar.gz
rm nginx.tar.gz
export DOMAIN="${{ vars.DOMAIN }}"
export EMAIL_USER="${{ vars.EMAIL_USER }}"
export SMTP_HOST="${{vars.SMTP_HOST}}"
docker compose up -d --no-build
docker image prune -f
"