My DATABASE_CA
env variable saved in my github secrets is a multi line file representing the certificate of my database. The ca file is a multi line file that I need to export to my vps to be used in my docker-compose.
name: Deploy prod stack to DigitalOcean
on:
create:
branches:
- release
push:
branches:
- release
pull_request:
branches:
- release
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checking out the repository
uses: actions/checkout@v3
- name: Copy docker-compose.prod.yml over to the server
uses: appleboy/[email protected]
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.PRIVATE_KEY }}
passphrase: ${{ secrets.PASSPHRASE }}
source: "docker-compose.prod.yml"
target: /home/${{ secrets.USERNAME }}
- name: Run the docker-compose.prod.yml stack
uses: appleboy/[email protected]
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.PRIVATE_KEY }}
passphrase: ${{ secrets.PASSPHRASE }}
script: |
echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
export DATABASE_HOST=${{ secrets.DATABASE_HOST }}
export DATABASE_PORT=${{ secrets.DATABASE_PORT }}
export DATABASE_NAME=${{ secrets.DATABASE_NAME }}
export DATABASE_USERNAME=${{ secrets.DATABASE_USERNAME }}
export DATABASE_PASSWORD=${{ secrets.DATABASE_PASSWORD }}
export DATABASE_CA=${{ secrets.DATABASE_CA }}
export APP_KEYS=${{ secrets.APP_KEYS }}
export API_TOKEN_SALT=${{ secrets.API_TOKEN_SALT }}
export ADMIN_JWT_SECRET=${{ secrets.ADMIN_JWT_SECRET }}
export JWT_SECRET=${{ secrets.JWT_SECRET }}
export R2_ACCESS_KEY_ID=${{ secrets.R2_ACCESS_KEY_ID }}
export R2_ACCESS_SECRET=${{ secrets.R2_ACCESS_SECRET }}
export R2_ENDPOINT=${{ secrets.R2_ENDPOINT }}
export R2_BUCKET=${{ secrets.R2_BUCKET }}
export R2_PUBLIC_ACCESS_URL=${{ secrets.R2_PUBLIC_ACCESS_URL }}
export APP_URL=${{ secrets.APP_URL }}
docker compose -f docker-compose.prod.yml down
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -d
2