Skip to content

Merge pull request #618 from lexesjan/renovate/node-20.x #560

Merge pull request #618 from lexesjan/renovate/node-20.x

Merge pull request #618 from lexesjan/renovate/node-20.x #560

Workflow file for this run

name: CD
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }}
HOST: ${{ secrets.HOST }}
USERNAME: ${{ secrets.USERNAME }}
KEY: ${{ secrets.KEY }}
PORT: ${{ secrets.PORT }}
REPO_PATH: ${{ secrets.REPO_PATH }}
on:
push:
branches:
- main
paths:
- .github/workflows/cd.yml
- src/**
- sql_scripts/**
- docker/**
- package.json
# add manual trigger
workflow_dispatch:
jobs:
continuous-delivery:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./docker
steps:
- name: Checkout repo and submodules
uses: actions/checkout@v3
with:
submodules: recursive
- name: Docker login
run: docker login --username ${{ env.DOCKER_USERNAME }} --password ${{ env.DOCKER_TOKEN }}
- name: Docker pull latest images
run: docker-compose pull
- name: Docker build
run: docker-compose -f ./docker-compose.yml -f ./docker-compose.prod.yml build
- name: Determine api tag by version
if: env.API_TAG == ''
run: echo "API_TAG=$(jq -r .version ../package.json)" >> $GITHUB_ENV
- name: Determine db tag by version
if: env.DB_TAG == ''
run: echo "DB_TAG=$(grep -oP '(\d+\.){2}\d+' ../sql_scripts/init.sql)" >> $GITHUB_ENV
- name: Docker tag
run: |
docker tag ${{ env.DOCKER_USERNAME }}/aniskip-database:latest ${{ env.DOCKER_USERNAME }}/aniskip-database:${{ env.DB_TAG }}
docker tag ${{ env.DOCKER_USERNAME }}/aniskip-api:latest ${{ env.DOCKER_USERNAME }}/aniskip-api:${{ env.API_TAG }}
- name: Docker push with tag
run: |
docker push ${{ env.DOCKER_USERNAME }}/aniskip-database:${{ env.DB_TAG }}
docker push ${{ env.DOCKER_USERNAME }}/aniskip-api:${{ env.API_TAG }}
- name: Docker push with latest tag
run: docker-compose -f ./docker-compose.yml -f ./docker-compose.prod.yml push
- name: Deploy to production
uses: appleboy/ssh-action@master
with:
host: ${{ env.HOST }}
username: ${{ env.USERNAME }}
KEY: ${{ env.KEY }}
port: ${{ env.PORT }}
script: |
cd ${{ env.REPO_PATH }}/docker
git checkout main
git pull --recurse-submodules
docker-compose pull
./stop.sh
./start.sh prod