Files
amap/.gitea/workflows/deploy.yaml
JulienAldon 6dec931720
Some checks failed
Deploy Amap / deploy (push) Failing after 27s
fix workflow with ssh
2026-09-08 13:44:26 +02:00

119 lines
3.1 KiB
YAML

name: Deploy Amap
on:
push:
branches:
- main
workflow_dispatch:
jobs:
deploy:
runs-on: service-updates
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Install dependencies and run tests
env:
AMAP_TEST_ENV_FILE: ${{ secrets.AMAP_TEST_ENV_FILE }}
run: |
set -euo pipefail
test -n "$AMAP_TEST_ENV_FILE"
printf '%s\n' "$AMAP_TEST_ENV_FILE" > .env
chmod 600 .env
set -a
. ./.env
set +a
python -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install -r backend/requirements.txt
.venv/bin/python -m pytest -sv
- name: Configure SSH
env:
DEPLOY_SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_SSH_PRIVATE_KEY }}
run: |
set -euo pipefail
test -n "$DEPLOY_SSH_PRIVATE_KEY"
install -d -m 700 "$HOME/.ssh"
printf '%s\n' "$DEPLOY_SSH_PRIVATE_KEY" > "$HOME/.ssh/id_ed25519"
chmod 600 "$HOME/.ssh/id_ed25519"
- name: Check Amap VM connection
run: |
ssh \
-o BatchMode=yes \
-o StrictHostKeyChecking=accept-new \
amap@192.168.1.96 \
"echo Connected to Amap VM"
- name: Create backup
run: |
ssh \
-o BatchMode=yes \
-o StrictHostKeyChecking=accept-new \
amap@192.168.1.96 \
"sudo systemctl start create-backup.service"
- name: Copy application to Amap VM
run: |
tar \
--exclude=.git \
--exclude=.venv \
--exclude=.env \
-czf - . |
ssh \
-o BatchMode=yes \
-o StrictHostKeyChecking=accept-new \
amap@192.168.1.96 \
"mkdir -p /home/amap/service &&
tar -xzf - -C /home/amap/service"
- name: Configure Amap environment
env:
AMAP_ENV_FILE: ${{ secrets.AMAP_ENV_FILE }}
run: |
set -euo pipefail
test -n "$AMAP_ENV_FILE"
printf '%s\n' "$AMAP_ENV_FILE" |
ssh \
-o BatchMode=yes \
-o StrictHostKeyChecking=accept-new \
amap@192.168.1.96 \
"umask 077 &&
mkdir -p /home/amap/service &&
cat > /home/amap/service/.env"
- name: Build and deploy on Amap VM
run: |
ssh \
-o BatchMode=yes \
-o StrictHostKeyChecking=accept-new \
amap@192.168.1.96 \
"cd /home/amap/service &&
sudo docker compose -f docker-compose.yaml up -d --build &&
sudo docker compose -f docker-compose.yaml exec -T backend alembic upgrade head"
- name: Verify deployment
run: |
curl \
--fail \
--silent \
--show-error \
--location \
--max-time 60 \
https://amap.aldon.fr