name: Deploy on: push: branches: - dev - main # Adjust the branch as needed jobs: build_and_push_images: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Docker login run: docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} ci.svs-tech.pro - name: Build and push Docker images env: BRANCH: ${{ gitea.ref_name }} run: | docker compose build docker compose push deploy_to_server_dev: needs: [build_and_push_images] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Configure SSH key run: | echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa - name: SSH into host down-up docker uses: appleboy/ssh-action@master env: BRANCH: ${{ gitea.ref_name }} HOSTING_PATH: ${{ gitea.ref_name == 'main' && '/home/svs-adm/mns-mini-zabor' || '/home/svs-adm/mns-mini-zabor_dev' }} DOCKER_PORT: ${{ gitea.ref_name == 'main' && '8103' || '8104' }} NUXT_PUBLIC_API_BASE: ${{'https://mns.'}}${{ gitea.ref_name == 'dev' && 'dev.' || '' }}kustarshina.ru/kp NUXT_PUBLIC_IMG_BASE: 'https://mns.kustarshina.ru' NUXT_PUBLIC_BASE_URL: ${{'https://kupizabor.'}}${{ gitea.ref_name == 'dev' && 'dev.' || '' }}kustarshina.ru NUXT_PUBLIC_YANDEX_METRIKA_ID: ${{ secrets.YANDEX_METRIKA_ID }} with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_PRIVATE_KEY }} # port: ${{ secrets.SSH_PORT }} envs: NUXT_PUBLIC_API_BASE, NUXT_PUBLIC_IMG_BASE, NUXT_PUBLIC_BASE_URL, NUXT_PUBLIC_YANDEX_METRIKA_ID, HOSTING_PATH, DOCKER_PORT, BRANCH script: | cd $HOSTING_PATH git checkout ${{gitea.ref_name}} git pull echo "NUXT_PUBLIC_API_BASE=$NUXT_PUBLIC_API_BASE NUXT_PUBLIC_IMG_BASE=$NUXT_PUBLIC_IMG_BASE NUXT_PUBLIC_BASE_URL=$NUXT_PUBLIC_BASE_URL NUXT_PUBLIC_YANDEX_METRIKA_ID=$NUXT_PUBLIC_YANDEX_METRIKA_ID BRANCH=$BRANCH" > .env docker compose down docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} ci.svs-tech.pro docker compose pull docker logout ci.svs-tech.pro docker compose up -d