some exp added #50
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI/CD Pipeline | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
jobs: | |
build-and-push-to-registry: | |
runs-on: ubuntu-latest | |
services: # use docker services for building and pushing compose file inside the repo | |
docker: | |
image: docker:latest | |
options: --privileged | |
steps: | |
- uses: actions/checkout@v4 # use this is an action to check the repo codes | |
- name: Login to DockerHub | |
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin docker.hoopoe.app | |
- name: Build and Push | |
run: | # 1 - build services | 2 - push services to the custom registry hosted on docker.hoopoe.app | |
sudo docker compose -f "docker-compose.yml" build | |
sudo docker compose -f "docker-compose.yml" push | |
pull-from-registry-on-server: | |
runs-on: ubuntu-latest | |
needs: build-and-push-to-registry | |
steps: | |
- name: Deploy to server | |
uses: appleboy/ssh-action@master # use this is an action to login into the ssh | |
with: | |
host: ${{ secrets.SERVER_HOST }} | |
username: ${{ secrets.SERVER_USER }} | |
password: ${{ secrets.SERVER_PASSWORD }} | |
port: 22 | |
script: | # 1 - pull services from the custom registry (each image in dockercompose file prefixed with registry name) | 2 - up all the services | |
cd /root/hoopoe | |
sudo docker compose -f "docker-compose.yml" pull | |
sudo docker compose -f "docker-compose.yml" up -d |