From 839f3445c75a5600c9c77c89307a004b94b49f94 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Fri, 27 Jun 2025 20:26:16 +0300 Subject: [PATCH] refactor deploy workflow: comment out build-and-push job and add .env file creation and SCP steps for environment variables --- .github/workflows/deploy.yml | 74 ++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 5842bc0..81c27a4 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -6,26 +6,26 @@ on: - master jobs: - build-and-push: - name: Build and Push to Docker Hub - runs-on: ubuntu-latest + # build-and-push: + # name: Build and Push to Docker Hub + # runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 + # steps: + # - name: Checkout code + # uses: actions/checkout@v3 - - name: Login to Docker Hub - run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin + # - name: Login to Docker Hub + # run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin - - name: Build image - run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/zapishis-strapi:latest . + # - name: Build image + # run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/zapishis-strapi:latest . - - name: Push image to Docker Hub - run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/zapishis-strapi:latest + # - name: Push image to Docker Hub + # run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/zapishis-strapi:latest deploy: name: Deploy to VPS - needs: build-and-push + # needs: build-and-push runs-on: ubuntu-latest steps: @@ -43,6 +43,30 @@ jobs: run: | ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }} "mkdir -p /home/${{ secrets.VPS_USER }}/zapishis-strapi" + - name: Create .env file + run: | + echo "APP_KEYS=${{ secrets.APP_KEYS }}" > .env + echo "API_TOKEN_SALT=${{ secrets.API_TOKEN_SALT }}" >> .env + echo "ADMIN_JWT_SECRET=${{ secrets.ADMIN_JWT_SECRET }}" >> .env + echo "TRANSFER_TOKEN_SALT=${{ secrets.TRANSFER_TOKEN_SALT }}" >> .env + echo "JWT_SECRET=${{ secrets.JWT_SECRET }}" >> .env + echo "DATABASE_HOST=${{ secrets.DATABASE_HOST }}" >> .env + echo "DATABASE_PORT=${{ secrets.DATABASE_PORT }}" >> .env + echo "DATABASE_NAME=${{ secrets.DATABASE_NAME }}" >> .env + echo "DATABASE_USERNAME=${{ secrets.DATABASE_USERNAME }}" >> .env + echo "DATABASE_PASSWORD=${{ secrets.DATABASE_PASSWORD }}" >> .env + echo "DATABASE_SSL=false" >> .env + + - name: Copy .env to VPS via SCP + uses: appleboy/scp-action@master + with: + host: ${{ secrets.VPS_HOST }} + username: ${{ secrets.VPS_USER }} + key: ${{ secrets.VPS_SSH_KEY }} + port: 22 + source: '.env' + target: '/home/${{ secrets.VPS_USER }}/zapishis-strapi/' + - name: Copy docker-compose.yml to VPS via SCP uses: appleboy/scp-action@master with: @@ -54,33 +78,9 @@ jobs: target: '/home/${{ secrets.VPS_USER }}/zapishis-strapi/' - name: Login and deploy on VPS - env: - APP_KEYS: ${{ secrets.APP_KEYS }} - API_TOKEN_SALT: ${{ secrets.API_TOKEN_SALT }} - ADMIN_JWT_SECRET: ${{ secrets.ADMIN_JWT_SECRET }} - TRANSFER_TOKEN_SALT: ${{ secrets.TRANSFER_TOKEN_SALT }} - JWT_SECRET: ${{ secrets.JWT_SECRET }} - DATABASE_HOST: ${{ secrets.DATABASE_HOST }} - DATABASE_PORT: ${{ secrets.DATABASE_PORT }} - DATABASE_NAME: ${{ secrets.DATABASE_NAME }} - DATABASE_USERNAME: ${{ secrets.DATABASE_USERNAME }} - DATABASE_PASSWORD: ${{ secrets.DATABASE_PASSWORD }} run: | ssh ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }} " cd /home/${{ secrets.VPS_USER }}/zapishis-strapi && \ - - echo \"APP_KEYS=$APP_KEYS\" > .env && \ - echo \"API_TOKEN_SALT=$API_TOKEN_SALT\" >> .env && \ - echo \"ADMIN_JWT_SECRET=$ADMIN_JWT_SECRET\" >> .env && \ - echo \"TRANSFER_TOKEN_SALT=$TRANSFER_TOKEN_SALT\" >> .env && \ - echo \"JWT_SECRET=$JWT_SECRET\" >> .env && \ - echo \"DATABASE_HOST=$DATABASE_HOST\" >> .env && \ - echo \"DATABASE_PORT=$DATABASE_PORT\" >> .env && \ - echo \"DATABASE_NAME=$DATABASE_NAME\" >> .env && \ - echo \"DATABASE_USERNAME=$DATABASE_USERNAME\" >> .env && \ - echo \"DATABASE_PASSWORD=$DATABASE_PASSWORD\" >> .env && \ - echo \"DATABASE_SSL=false\" >> .env && \ - docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }} && \ docker compose pull && \ docker compose up -d