Skip to content

Delete src/main/resources/static/images/Activity/jardin_1.jpg #36

Delete src/main/resources/static/images/Activity/jardin_1.jpg

Delete src/main/resources/static/images/Activity/jardin_1.jpg #36

Workflow file for this run

name: CD Pipeline for Spring Boot
on:
push:
branches:
- staging
- production
jobs:
build-and-push:
name: 🛠️ Build & Push Docker image
runs-on: ubuntu-latest
outputs:
tag: ${{ steps.set_tag.outputs.tag }}
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Set Docker image tag
id: set_tag
run: |
if [[ "${GITHUB_REF##*/}" == "production" ]]; then
echo "tag=production" >> "$GITHUB_OUTPUT"
else
echo "tag=staging" >> "$GITHUB_OUTPUT"
fi
- name: Build and Push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile
push: true
tags: alasso/spring-app:${{ steps.set_tag.outputs.tag }}
deploy:
name: 🚀 Deploy to VPS
needs: build-and-push
runs-on: ubuntu-latest
steps:
- name: Set up SSH key
run: |
mkdir -p ~/.ssh
echo "${{ secrets.VPS_PRIVATE_KEY_CD_STAGING }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
- name: SSH to VPS and deploy
run: |
TAG=${{ needs.build-and-push.outputs.tag }}
ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_ed25519 -p "${{ secrets.VPS_SSH_PORT }}" ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }} << EOF
cd /home/${{ secrets.VPS_USER }}/alasso/backend/$TAG
docker compose pull
docker compose down && docker compose up -d
EOF