Skip to content

second version of deploy #21

second version of deploy

second version of deploy #21

Workflow file for this run

name: old - CI/CD
on:
push:
branches: main
env:
REGISTRY: ghcr.io
IMAGE_NAME: djangoforge
jobs:
build_and_push:
runs-on: ubuntu-latest
steps:
- name: Checkout the repo
uses: actions/checkout@v3
with:
submodules: recursive
token: ${{ secrets.GITHUB_TOKEN }}
- name: Call reusable workflow to create config files
uses: ./.github/workflows/create-config-files.yml
with:
repo_name: ${{ env.REPO_NAME }}
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
private_key: ${{ secrets.PRIVATE_KEY }}
working-directory: .

Check failure on line 30 in .github/workflows/old_CI-CD.yml

View workflow run for this annotation

GitHub Actions / old - CI/CD

Invalid workflow file

The workflow is not valid. .github/workflows/old_CI-CD.yml (Line: 30, Col: 9): Unexpected value 'working-directory'
- name: Display content of .env file
run: cat ./config/.env
- name: Build Docker image using Docker Compose
run: docker-compose -f docker-compose.dev.yml build
- name: verify that all the container have been built
run: docker images
- name: LOG IN to container registry
run: echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: set lower case owner name
run: |
echo "OWNER_LC=${OWNER,,}" >>${GITHUB_ENV}
env:
OWNER: '${{ github.repository_owner }}'
- name: Tag image
run: |
docker tag webapp_django ${{ env.REGISTRY }}/${OWNER_LC}/${{ env.IMAGE_NAME }}:latest
- name: List Docker images
run: docker images
- name: Push image to GitHub Container Registry
run: |
docker push ${{ env.REGISTRY }}/${OWNER_LC}/${{ env.IMAGE_NAME }}:latest
deploy:
runs-on: ubuntu-latest
needs: build_and_push
steps:
- name: Checkout del repository
uses: actions/checkout@v3
with:
submodules: recursive
token: ${{ secrets.GHCR_TOKEN }}
- name: Get repo name to give directory a name
run: |
echo "REPO_NAME=${GITHUB_REPOSITORY#$GITHUB_REPOSITORY_OWNER/}" >> $GITHUB_ENV
echo $GITHUB_ENV
- name: Call reusable workflow to create config files
uses: ./.github/workflows/create-config-files.yml
with:
repo_name: ${{ env.REPO_NAME }}
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
private_key: ${{ secrets.PRIVATE_KEY }}
- name: SCP Docker Compose file
uses: appleboy/scp-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.PRIVATE_KEY }}
source: "./docker-compose.prod.yml"
target: "/opt/${{ env.REPO_NAME }}/"
- name: SCP Nginx conf file
uses: appleboy/scp-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.PRIVATE_KEY }}
source: "nginx/"
target: "/etc/nginx/sites-available/"
strip_components: 1
- name: Update Nginx configuration file
uses: appleboy/[email protected]
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.PRIVATE_KEY }}
script: |
sed -i "s/localhost/${{ secrets.DOMAIN }}/g" /etc/nginx/sites-available/nginx.conf
- name: Update server
uses: appleboy/[email protected]
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.PRIVATE_KEY }}
script: |
sudo apt update -y
sudo apt upgrade -y
- name: set lower case owner name
run: |
echo "OWNER_LC=${OWNER,,}" >>${GITHUB_ENV}
env:
OWNER: '${{ github.repository_owner }}'
- name: Stop And Start containers
uses: appleboy/[email protected]
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.PRIVATE_KEY }}
script: |
echo ${{ secrets.GHCR_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker system prune -f
docker-compose -f /opt/${{ env.REPO_NAME }}/docker-compose.prod.yml down
docker pull ghcr.io/leobitto/${{ env.IMAGE_NAME }}:latest
docker tag ghcr.io/leobitto/${{ env.IMAGE_NAME }}:latest ${{ env.IMAGE_NAME }}
docker-compose -f /opt/${{ env.REPO_NAME }}/docker-compose.prod.yml up -d --force-recreate
echo "wait for it.."
sleep 5
echo "5 seconds has passed"
docker exec web python manage.py migrate
docker exec web python manage.py collectstatic --noinput --clear