From fcb15f3e1c5727c89be9b01db6b046e36e6cd126 Mon Sep 17 00:00:00 2001 From: Anatoly Kopyl Date: Sat, 28 Sep 2024 12:40:49 +0300 Subject: [PATCH] Add ci --- .gitea/workflows/ci.yaml | 61 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .gitea/workflows/ci.yaml diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml new file mode 100644 index 0000000..88706c2 --- /dev/null +++ b/.gitea/workflows/ci.yaml @@ -0,0 +1,61 @@ +name: Deploy +on: + push: + branches: + - master + +env: + IMAGE_NAME: kopyl-dev-v2 + DOCKER_HUB_REGISTRY: git.radner.ru + +jobs: + build-and-publish: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@v3 + with: + registry: ${{ env.DOCKER_HUB_REGISTRY }} + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile + push: true + tags: | + ${{ env.DOCKER_HUB_REGISTRY }}/${{ secrets.DOCKER_USERNAME }}/${{ env.IMAGE_NAME }}:latest + + deploy: + runs-on: ubuntu-latest + needs: build-and-publish + + steps: + - name: Set up SSH + uses: webfactory/ssh-agent@v0.5.3 + with: + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + + - name: Deploy to Remote Host + env: + REMOTE_USER: ${{ secrets.REMOTE_USER }} + REMOTE_HOST: ${{ secrets.REMOTE_HOST }} + IMAGE_NAME: ${{ env.IMAGE_NAME }} + DOCKER_HUB_REGISTRY: ${{ env.DOCKER_HUB_REGISTRY }} + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + run: | + ssh_command=" + docker pull ${DOCKER_HUB_REGISTRY}/${DOCKER_USERNAME}/${IMAGE_NAME}:latest + docker stop ${IMAGE_NAME} || true + docker rm ${IMAGE_NAME} || true + docker run -d --name ${IMAGE_NAME} -p 3006:3000 ${DOCKER_HUB_REGISTRY}/${DOCKER_USERNAME}/${IMAGE_NAME}:latest + " + ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} "$ssh_command"