Refactor pipeline steps

This commit is contained in:
Murtadha 2024-07-15 11:43:17 -04:00
parent 22aec27560
commit c7056841a2

View file

@ -2,53 +2,59 @@
# type: docker # type: docker
# name: frontend-deployment # name: frontend-deployment
steps: pipeline:
- name: build build:
image: node:22 image: node:22
commands: commands:
- npm ci - npm ci
- npm run build - npm run build
- name: ssh-copy-to-host ssh-copy-to-host:
image: appleboy/drone-scp image: appleboy/drone-scp
settings: settings:
host: host:
from_secret: ssh_host from_secret: ssh_host
username: username:
from_secret: ssh_username from_secret: ssh_username
key: key:
from_secret: ssh_key from_secret: ssh_key
port: 2332 port: 2332
target: /home/mnisyif/docker-containers/mnisyif/frontend target: /home/mnisyif/docker-containers/mnisyif/frontend
source: source:
- dist/ - dist/
- Dockerfile - Dockerfile
- nginx.conf - nginx.conf
- version.txt - version.txt
- name: webserver-docker-deploy webserver-docker-deploy:
image: appleboy/drone-ssh image: appleboy/drone-ssh
settings: settings:
host: host:
from_secret: ssh_host from_secret: ssh_host
username: username:
from_secret: ssh_username from_secret: ssh_username
key: key:
from_secret: ssh_key from_secret: ssh_key
port: 2332 port: 2332
script: script:
- cd /home/mnisyif/docker-containers/mnisyif/frontend - cd /home/mnisyif/docker-containers/mnisyif/frontend
- VERSION=$(cat version.txt) - VERSION=$(cat version.txt)
- docker build -t frontend:$VERSION . # Build the new Docker image with the current version tag
- docker stop frontend || true - docker build -t frontend:$VERSION .
- docker rm frontend || true # Stop and remove the existing container if it exists
- docker run -d --name frontend -p 5173:80 frontend:$VERSION - docker stop frontend || true
- docker image prune -f - docker rm frontend || true
- docker system prune -f --volumes # Run the new container with the current version
- > - docker run -d --name frontend -p 5173:80 frontend:$VERSION
for img in $(docker images frontend --format "{{.Tag}}" | grep -v $VERSION); do # Remove dangling images
docker rmi frontend:$img; - docker image prune -f
done # Clean up unused containers, images, and volumes
- docker system prune -f --volumes
# Remove older versions of the Docker image
- >
for img in $(docker images frontend --format "{{.Tag}}" | grep -v $VERSION); do
docker rmi frontend:$img;
done
trigger: trigger:
event: event: