Moving the deploy to a new location
This commit is contained in:
132
.gitea/workflow/deploy.yml
Normal file
132
.gitea/workflow/deploy.yml
Normal file
@@ -0,0 +1,132 @@
|
||||
name: deploy
|
||||
run-name: "Deploying: ${{ github.sha }}"
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
environment:
|
||||
required: true
|
||||
type: string
|
||||
default: "DEV"
|
||||
|
||||
env:
|
||||
PAANOO_VERSION: ${{ needs.versioning.outputs.release_tag }}
|
||||
PAANOO_CONTACT_EMAIL: ${{ vars.DEV_CONTACT_EMAIL }}
|
||||
PAANOO_DB_HOST: ${{ vars.DEV_DB_HOST }}
|
||||
PAANOO_DB_NAME: ${{ vars.DEV_DB_NAME }}
|
||||
PAANOO_DB_USER: ${{ vars.DEV_DB_USER }}
|
||||
PAANOO_DB_SCHEMA: ${{ vars.DEV_DB_SCHEMA }}
|
||||
PAANOO_DB_PASSWORD: ${{ secrets.DEV_DB_PASSWORD }}
|
||||
|
||||
PAANOO_CACHE_CONFIG: ${{ vars.DEV_CACHE_BACKEND }}
|
||||
PAANOO_CACHE_ADDITIONAL_CONFIG: ${{ vars.DEV_CACHE_ADDITIONAL_CONFIG }}
|
||||
|
||||
PAANOO_PHOTOS_PATH: ${{ vars.DEV_PHOTOS_PATH }}
|
||||
PAANOO_PREVIEWS_PATH: ${{ vars.DEV_PREVIEWS_PATH }}
|
||||
PAANOO_RENDER_SERVICE_URL: ${{ vars.DEV_RENDER_SERVICE_URL }}
|
||||
PAANOO_URL: ${{ vars.DEV_URL }}
|
||||
PAANOO_REDIS_HOST: ${{ vars.DEV_REDIS_HOST }}
|
||||
PAANOO_MAILER_HOST: ${{ vars.DEV_MAILER_HOST }}
|
||||
PAANOO_MAILER_USER: ${{ vars.DEV_MAILER_USER }}
|
||||
PAANOO_MAILER_PASSWORD: ${{ secrets.DEV_MAILER_PASSWORD }}
|
||||
PAANOO_MAILER_FROM_ADDRESS: ${{ vars.DEV_MAILER_FROM_ADDRESS }}
|
||||
PAANOO_MAILER_FROM_NAME: ${{ vars.DEV_MAILER_FROM_NAME }}
|
||||
|
||||
STRIPE_SECRET: ${{ secrets.DEV_STRIPE_SECRET }}
|
||||
STRIPE_ENDPOINT_SECRET: ${{ secrets.DEV_STRIPE_ENDPOINT_SECRET }}
|
||||
|
||||
PRINTIFY_KEY: ${{ secrets.PRINTIFY_KEY }}
|
||||
|
||||
PAANOO_CDN_BUCKET: ${{ vars.DEV_CDN_BUCKET }}
|
||||
PAANOO_CDN_REGION: ${{ vars.DEV_CDN_REGION }}
|
||||
PAANOO_CDN_ACCESS_KEY_ID: ${{ vars.DEV_CDN_ACCESS_KEY }}
|
||||
PAANOO_CDN_SECRET_KEY: ${{ secrets.DEV_CDN_SECRET_KEY }}
|
||||
PAANOO_CDN_ENDPOINT: ${{ vars.DEV_CDN_ENDPOINT }}
|
||||
PAANOO_CDN_PUBLIC_ENDPOINT: ${{ vars.DEV_CDN_PUBLIC_ENDPOINT }}
|
||||
|
||||
jobs:
|
||||
update_db:
|
||||
name: Update database
|
||||
runs-on: php-8.3
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Run composer
|
||||
run: composer install --ignore-platform-reqs
|
||||
|
||||
- name: Write out configuration files
|
||||
run: envsubst < config/main-template.ini > config/main.ini
|
||||
|
||||
- name: Run migrations
|
||||
run: |
|
||||
pwd
|
||||
vendor/bin/yentu migrate --config-path ./config/main.ini --home yentu
|
||||
|
||||
versioning:
|
||||
name: Get version tag
|
||||
runs-on: php-8.3
|
||||
outputs:
|
||||
release_tag: ${{ steps.export_tag.outputs.release_tag }}
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-tags: true
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Extract the current version
|
||||
id: export_tag
|
||||
run: echo "release_tag=`git describe`" >> "$GITHUB_OUTPUT"
|
||||
|
||||
deploy:
|
||||
name: Deploy Apps
|
||||
runs-on: php-8.3
|
||||
needs: [versioning, update_db]
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-tags: true
|
||||
fetch-depth: 0
|
||||
- name: Configure SSH for docker
|
||||
run: |
|
||||
eval "$(ssh-agent -s)"
|
||||
echo "${{ secrets.DEPLOY_KEY }}" > ~/.ssh/id_ed25519
|
||||
chmod 0600 ~/.ssh/id_ed25519
|
||||
ssh-add ~/.ssh/id_ed25519
|
||||
ssh-keyscan ${{ vars.DEV_DEPLOYMENT_HOST }} >> ~/.ssh/known_hosts
|
||||
|
||||
|
||||
- name: Write out configurations
|
||||
run: |
|
||||
envsubst < config/main-template.ini > config/main.ini
|
||||
envsubst < deployment/dev/compose-web.yaml > compose-web.yaml
|
||||
envsubst < deployment/dev/compose-worker.yaml > compose-worker.yaml
|
||||
|
||||
|
||||
- name: Download package artefacts
|
||||
run: |
|
||||
rm -r public
|
||||
wget --user kenteprint --password ${{ secrets.PACKAGE_READ_TOKEN }} https://git.ainooson.me/api/packages/kenteprint/generic/frontend/`git describe`/frontend.tar.gz
|
||||
tar xvf frontend.tar.gz
|
||||
|
||||
|
||||
- name: Execute Docker Compose for web
|
||||
env:
|
||||
DOCKER_HOST: ssh://ekow@${{ vars.DEV_DEPLOYMENT_HOST }}
|
||||
run: |
|
||||
ssh ekow@${{ vars.DEV_DEPLOYMENT_HOST }} "cd web; mkdir -p files/photos files/previews"
|
||||
scp -r public deployment/dev/nginx.conf config ekow@${{ vars.DEV_DEPLOYMENT_HOST }}:web
|
||||
scp compose-web.yaml ekow@${{ vars.DEV_DEPLOYMENT_HOST }}:web/compose.yaml
|
||||
ssh ekow@${{ vars.DEV_DEPLOYMENT_HOST }} "cd web; docker-compose down; docker-compose pull; docker-compose up -d"
|
||||
|
||||
|
||||
- name: Execute Docker Compose for worker
|
||||
env:
|
||||
DOCKER_HOST: ssh://ekow@${{ vars.DEV_DEPLOYMENT_HOST }}
|
||||
run: |
|
||||
ssh ekow@${{ vars.DEV_DEPLOYMENT_HOST }} "cd worker; mkdir -p data/photos data/previews"
|
||||
scp -r public deployment/dev/nginx.conf config ekow@${{ vars.DEV_DEPLOYMENT_HOST }}:worker
|
||||
scp compose-worker.yaml ekow@${{ vars.DEV_DEPLOYMENT_HOST }}:worker/compose.yaml
|
||||
ssh ekow@${{ vars.DEV_DEPLOYMENT_HOST }} "cd worker; docker-compose down; docker-compose pull; docker-compose up -d"
|
||||
Reference in New Issue
Block a user