Skip to content

💚 use nginx proxy #30

💚 use nginx proxy

💚 use nginx proxy #30

name: BSN Frontend Pipeline
on:
push:
branches:
- ci/pipeline
paths:
- book-network-ui/**
- docker/frontend/**
- 'docker-compose.yml'
- .github/workflows/*-frontend.yml
jobs:
build-image:
name: Build FE Docker image
runs-on: self-hosted
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Extract project version
id: extract_version
run: |
cd book-network-ui
echo "VERSION=$(jq -r '.version' package.json)" >> $GITHUB_OUTPUT
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build & Push to DockerHub
uses: docker/build-push-action@v5
with:
context: book-network-ui
file: docker/frontend/Dockerfile
push: true
platforms: linux/amd64
tags: ${{ secrets.DOCKERHUB_USERNAME }}/bsn-ui:latest,${{ secrets.DOCKERHUB_USERNAME }}/bsn-ui:${{ steps.extract_version.outputs.VERSION }}
deploy:
name: Deploy Frontend
runs-on: self-hosted
needs: [ build-image ]
steps:
- name: Create deployment folder
run: ssh ${{ secrets.VPS_USERNAME }}@${{ secrets.VPS_IP }} "mkdir -p ci-cd"
- name: Copy docker-compose file
run: scp -oStrictHostKeyChecking=no docker-compose.yml ${{ secrets.VPS_USERNAME }}@${{ secrets.VPS_IP }}:ci-cd/docker-compose.yml
- name: Set ENV variable and deploy
run: |
ssh ${{ secrets.VPS_USERNAME }}@${{ secrets.VPS_IP }} <<EOF
cd ci-cd
docker compose -f docker-compose.yml pull -q
docker compose -f docker-compose.yml up -d
EOF
# health-check:
# name: UI Health Check
# runs-on: self-hosted
# needs: [deploy]
# steps:
# - name: Check the docker container health status
# run: |
# if ! docker ps -a | grep bsn-ui; then
# echo "Container is not running"
# exit 1
# fi