Add CI deployment to app LXC
This commit is contained in:
parent
3d33a78f1f
commit
9049d367ea
6 changed files with 531 additions and 2 deletions
|
|
@ -52,3 +52,72 @@ jobs:
|
|||
export PATH="$HOME/.local/bin:$HOME/.bun/bin:$PATH"
|
||||
cd robot-u-site
|
||||
./scripts/check_frontend_quality.sh
|
||||
|
||||
deploy:
|
||||
runs-on: docker
|
||||
needs:
|
||||
- check
|
||||
if: ${{ github.event_name == 'push' }}
|
||||
|
||||
steps:
|
||||
- name: Install deploy tooling
|
||||
run: |
|
||||
set -euo pipefail
|
||||
if ! command -v rsync >/dev/null 2>&1; then
|
||||
apt-get update
|
||||
apt-get install -y rsync openssh-client
|
||||
fi
|
||||
|
||||
- name: Install SSH keys
|
||||
run: |
|
||||
set -euo pipefail
|
||||
mkdir -p ~/.ssh
|
||||
printf '%s\n' "${{ secrets.CI_REPO_SSH_KEY }}" > ~/.ssh/robot_u_site_clone
|
||||
printf '%s\n' "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/robot_u_site_deploy
|
||||
chmod 600 ~/.ssh/robot_u_site_clone ~/.ssh/robot_u_site_deploy
|
||||
ssh-keyscan aksal.cloud >> ~/.ssh/known_hosts
|
||||
ssh-keyscan 192.168.1.220 >> ~/.ssh/known_hosts
|
||||
cat > ~/.ssh/config <<'EOF'
|
||||
Host aksal.cloud
|
||||
IdentityFile ~/.ssh/robot_u_site_clone
|
||||
IdentitiesOnly yes
|
||||
|
||||
Host robot-u-app
|
||||
HostName 192.168.1.220
|
||||
User root
|
||||
IdentityFile ~/.ssh/robot_u_site_deploy
|
||||
IdentitiesOnly yes
|
||||
EOF
|
||||
|
||||
- name: Clone repository over SSH
|
||||
run: |
|
||||
set -euo pipefail
|
||||
git clone --depth 1 git@aksal.cloud:Robot-U/robot-u-site.git robot-u-site
|
||||
|
||||
- name: Sync application files
|
||||
run: |
|
||||
set -euo pipefail
|
||||
rsync -az --delete \
|
||||
--exclude='.git/' \
|
||||
--exclude='.venv/' \
|
||||
--exclude='__pycache__/' \
|
||||
--exclude='.pytest_cache/' \
|
||||
--exclude='.ruff_cache/' \
|
||||
--exclude='.env' \
|
||||
--exclude='.env.*' \
|
||||
--exclude='frontend/node_modules/' \
|
||||
--exclude='frontend/dist/' \
|
||||
--exclude='frontend/.vite/' \
|
||||
--exclude='examples/quadrature-encoder-course/' \
|
||||
robot-u-site/ robot-u-app:/opt/robot-u-site/
|
||||
|
||||
- name: Rebuild and restart app
|
||||
run: |
|
||||
set -euo pipefail
|
||||
ssh robot-u-app '
|
||||
set -euo pipefail
|
||||
cd /opt/robot-u-site
|
||||
./scripts/check_deploy_config.py
|
||||
docker compose up --build -d
|
||||
curl -fsS http://127.0.0.1:8800/health
|
||||
'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue