From fe97818968acc18cee0d230445abb9b888b19543 Mon Sep 17 00:00:00 2001 From: Kirill Date: Fri, 2 Oct 2026 15:48:54 +0300 Subject: [PATCH] ci: Add release start --- .gitea/workflows/release.yaml | 51 +++++++++++++++++++++++++++++ ansible/restart_release_compose.yml | 15 +++++++++ 2 files changed, 66 insertions(+) create mode 100644 .gitea/workflows/release.yaml create mode 100644 ansible/restart_release_compose.yml diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml new file mode 100644 index 0000000..ca193aa --- /dev/null +++ b/.gitea/workflows/release.yaml @@ -0,0 +1,51 @@ +name: Build, Test and Push Flask App + +on: + push: + branches: + - release + +env: + PYTHON_VERSION: '3.11' + +jobs: + deploy-release: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Ansible + run: | + apt-get update + apt-get install -y ansible openssh-client + + - name: Set up SSH key + env: + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_RELEASE_KEY }} + run: | + mkdir -p ~/.ssh + printf '%s' "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/deploy_key + chmod 600 ~/.ssh/deploy_key + ssh-keygen -y -f ~/.ssh/deploy_key >/dev/null + + - name: Trust server host key + run: | + ssh-keyscan -H "${{ secrets.RELEASE_SERVER_IP }}" >> ~/.ssh/known_hosts + + - name: Test SSH + run: | + ssh \ + -i ~/.ssh/deploy_key \ + -o StrictHostKeyChecking=yes \ + "${{ secrets.RELEASE_SERVER_USER }}@${{ secrets.RELEASE_SERVER_IP }}" \ + 'echo SSH works' + + - name: Run Ansible playbook + run: | + ansible-playbook \ + -i "${{ secrets.RELEASE_SERVER_IP }}," \ + ansible/restart_release_compose.yml \ + --user "${{ secrets.RELEASE_SERVER_USER }}" \ + --private-key ~/.ssh/deploy_key diff --git a/ansible/restart_release_compose.yml b/ansible/restart_release_compose.yml new file mode 100644 index 0000000..a1d9540 --- /dev/null +++ b/ansible/restart_release_compose.yml @@ -0,0 +1,15 @@ +- name: Restart Docker Compose services + hosts: all + # become: yes # <-- больше не нужно, т.к. пользователь уже имеет права Docker + tasks: + - name: docker compose down + ansible.builtin.shell: + cmd: docker compose down pvh-frontend + chdir: ~/web + - name: prune system + ansible.builtin.shell: + cmd: docker system prune -a -f + - name: docker compose up -d + ansible.builtin.shell: + cmd: docker compose up -d pvh-frontend + chdir: ~/web