From 8533bd12db0df03fcdd10a2be3263de85b7582b8 Mon Sep 17 00:00:00 2001 From: Izaias Machado Date: Wed, 6 Mar 2024 07:44:27 -0300 Subject: [PATCH 1/2] chore: try out test environment deployment --- .github/workflows/deploy.yml | 78 ++++++++++++++++++++++-------------- 1 file changed, 49 insertions(+), 29 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 04b87c29..705a8231 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,39 +1,16 @@ name: Deploy on: push: - branches: - - main + # branches: + # - main jobs: - push-to-registry: - name: Push to DockerHub Registry + deploy-test: + name: Deploy test environment to Azure VM runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - java-version: 17 - distribution: "zulu" - - - name: Login to DockerHub - run: echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin - - - name: Build and push Docker image - run: | - docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api . - docker push ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api - - deploy: - name: Deploy to Azure VM - runs-on: ubuntu-latest - needs: push-to-registry environment: - name: azure-production - url: https://api.mandacarubroker.com.br/docs + name: azure-test + url: https://test-api.mandacarubroker.com.br/docs steps: - name: Set up Azure CLI uses: azure/login@v1 @@ -47,3 +24,46 @@ jobs: - name: Deploy to Azure VM and run Docker run: ssh -o StrictHostKeyChecking=no -i private_key ${{ vars.AZURE_VM_USER }}@${{ vars.AZURE_VM_IP }} 'sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api || true && sudo docker stop mandacarubroker-api || true && docker rm mandacarubroker-api || true && docker run --log-opt labels=applications,environment --restart unless-stopped --name mandacarubroker-api -e MANDACARU_POSTGRES_HOST=${{ secrets.MANDACARU_POSTGRES_HOST }} -e MANDACARU_POSTGRES_PORT=${{ secrets.MANDACARU_POSTGRES_PORT }} -e MANDACARU_POSTGRES_DB=${{ secrets.MANDACARU_POSTGRES_DB }} -e MANDACARU_POSTGRES_USER=${{ secrets.MANDACARU_POSTGRES_USER }} -e MANDACARU_POSTGRES_PASSWORD=${{ secrets.MANDACARU_POSTGRES_PASSWORD }} -e MANDACARU_SQL_INIT_MODE=${{ vars.MANDACARU_SQL_INIT_MODE }} -e MANDACARU_JWT_SECRET=${{ secrets.MANDACARU_JWT_SECRET }} -e MANDACARU_API_PORT=${{ vars.MANDACARU_API_PORT }} -p ${{ vars.MANDACARU_API_PORT }}:8080 -d ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api' + + # push-to-registry: + # name: Push to DockerHub Registry + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # with: + # fetch-depth: 0 + + # - name: Set up JDK 17 + # uses: actions/setup-java@v3 + # with: + # java-version: 17 + # distribution: "zulu" + + # - name: Login to DockerHub + # run: echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin + + # - name: Build and push Docker image + # run: | + # docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api . + # docker push ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api + + # deploy-production: + # name: Deploy production environment to Azure VM + # runs-on: ubuntu-latest + # needs: push-to-registry + # environment: + # name: azure-production + # url: https://api.mandacarubroker.com.br/docs + # steps: + # - name: Set up Azure CLI + # uses: azure/login@v1 + # with: + # creds: ${{ secrets.AZURE_CREDENTIALS }} + + # - name: Save SSH private key to file + # run: | + # echo "${{ secrets.SSH_PRIVATE_KEY }}" > private_key + # chmod 400 private_key + + # - name: Deploy to Azure VM and run Docker + # run: ssh -o StrictHostKeyChecking=no -i private_key ${{ vars.AZURE_VM_USER }}@${{ vars.AZURE_VM_IP }} 'sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api || true && sudo docker stop mandacarubroker-api || true && docker rm mandacarubroker-api || true && docker run --log-opt labels=applications,environment --restart unless-stopped --name mandacarubroker-api -e MANDACARU_POSTGRES_HOST=${{ secrets.MANDACARU_POSTGRES_HOST }} -e MANDACARU_POSTGRES_PORT=${{ secrets.MANDACARU_POSTGRES_PORT }} -e MANDACARU_POSTGRES_DB=${{ secrets.MANDACARU_POSTGRES_DB }} -e MANDACARU_POSTGRES_USER=${{ secrets.MANDACARU_POSTGRES_USER }} -e MANDACARU_POSTGRES_PASSWORD=${{ secrets.MANDACARU_POSTGRES_PASSWORD }} -e MANDACARU_SQL_INIT_MODE=${{ vars.MANDACARU_SQL_INIT_MODE }} -e MANDACARU_JWT_SECRET=${{ secrets.MANDACARU_JWT_SECRET }} -e MANDACARU_API_PORT=${{ vars.MANDACARU_API_PORT }} -p ${{ vars.MANDACARU_API_PORT }}:8080 -d ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api' From 26b99b87d6934850685a2394c11afd1b66c5ed48 Mon Sep 17 00:00:00 2001 From: Izaias Machado Date: Wed, 6 Mar 2024 07:59:00 -0300 Subject: [PATCH 2/2] chore: add commented other jobs --- .github/workflows/deploy.yml | 85 ++++++++++++++++++------------------ 1 file changed, 43 insertions(+), 42 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 705a8231..cb32129d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,13 +1,36 @@ name: Deploy on: push: - # branches: - # - main + branches: + - main jobs: + push-to-registry: + name: Push to DockerHub Registry + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: "zulu" + + - name: Login to DockerHub + run: echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin + + - name: Build and push Docker image + run: | + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api . + docker push ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api + deploy-test: name: Deploy test environment to Azure VM runs-on: ubuntu-latest + needs: push-to-registry environment: name: azure-test url: https://test-api.mandacarubroker.com.br/docs @@ -25,45 +48,23 @@ jobs: - name: Deploy to Azure VM and run Docker run: ssh -o StrictHostKeyChecking=no -i private_key ${{ vars.AZURE_VM_USER }}@${{ vars.AZURE_VM_IP }} 'sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api || true && sudo docker stop mandacarubroker-api || true && docker rm mandacarubroker-api || true && docker run --log-opt labels=applications,environment --restart unless-stopped --name mandacarubroker-api -e MANDACARU_POSTGRES_HOST=${{ secrets.MANDACARU_POSTGRES_HOST }} -e MANDACARU_POSTGRES_PORT=${{ secrets.MANDACARU_POSTGRES_PORT }} -e MANDACARU_POSTGRES_DB=${{ secrets.MANDACARU_POSTGRES_DB }} -e MANDACARU_POSTGRES_USER=${{ secrets.MANDACARU_POSTGRES_USER }} -e MANDACARU_POSTGRES_PASSWORD=${{ secrets.MANDACARU_POSTGRES_PASSWORD }} -e MANDACARU_SQL_INIT_MODE=${{ vars.MANDACARU_SQL_INIT_MODE }} -e MANDACARU_JWT_SECRET=${{ secrets.MANDACARU_JWT_SECRET }} -e MANDACARU_API_PORT=${{ vars.MANDACARU_API_PORT }} -p ${{ vars.MANDACARU_API_PORT }}:8080 -d ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api' - # push-to-registry: - # name: Push to DockerHub Registry - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v3 - # with: - # fetch-depth: 0 - - # - name: Set up JDK 17 - # uses: actions/setup-java@v3 - # with: - # java-version: 17 - # distribution: "zulu" - - # - name: Login to DockerHub - # run: echo ${{ secrets.DOCKERHUB_TOKEN }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin - - # - name: Build and push Docker image - # run: | - # docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api . - # docker push ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api - - # deploy-production: - # name: Deploy production environment to Azure VM - # runs-on: ubuntu-latest - # needs: push-to-registry - # environment: - # name: azure-production - # url: https://api.mandacarubroker.com.br/docs - # steps: - # - name: Set up Azure CLI - # uses: azure/login@v1 - # with: - # creds: ${{ secrets.AZURE_CREDENTIALS }} + deploy-production: + name: Deploy production environment to Azure VM + runs-on: ubuntu-latest + needs: push-to-registry + environment: + name: azure-production + url: https://api.mandacarubroker.com.br/docs + steps: + - name: Set up Azure CLI + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} - # - name: Save SSH private key to file - # run: | - # echo "${{ secrets.SSH_PRIVATE_KEY }}" > private_key - # chmod 400 private_key + - name: Save SSH private key to file + run: | + echo "${{ secrets.SSH_PRIVATE_KEY }}" > private_key + chmod 400 private_key - # - name: Deploy to Azure VM and run Docker - # run: ssh -o StrictHostKeyChecking=no -i private_key ${{ vars.AZURE_VM_USER }}@${{ vars.AZURE_VM_IP }} 'sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api || true && sudo docker stop mandacarubroker-api || true && docker rm mandacarubroker-api || true && docker run --log-opt labels=applications,environment --restart unless-stopped --name mandacarubroker-api -e MANDACARU_POSTGRES_HOST=${{ secrets.MANDACARU_POSTGRES_HOST }} -e MANDACARU_POSTGRES_PORT=${{ secrets.MANDACARU_POSTGRES_PORT }} -e MANDACARU_POSTGRES_DB=${{ secrets.MANDACARU_POSTGRES_DB }} -e MANDACARU_POSTGRES_USER=${{ secrets.MANDACARU_POSTGRES_USER }} -e MANDACARU_POSTGRES_PASSWORD=${{ secrets.MANDACARU_POSTGRES_PASSWORD }} -e MANDACARU_SQL_INIT_MODE=${{ vars.MANDACARU_SQL_INIT_MODE }} -e MANDACARU_JWT_SECRET=${{ secrets.MANDACARU_JWT_SECRET }} -e MANDACARU_API_PORT=${{ vars.MANDACARU_API_PORT }} -p ${{ vars.MANDACARU_API_PORT }}:8080 -d ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api' + - name: Deploy to Azure VM and run Docker + run: ssh -o StrictHostKeyChecking=no -i private_key ${{ vars.AZURE_VM_USER }}@${{ vars.AZURE_VM_IP }} 'sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api || true && sudo docker stop mandacarubroker-api || true && docker rm mandacarubroker-api || true && docker run --log-opt labels=applications,environment --restart unless-stopped --name mandacarubroker-api -e MANDACARU_POSTGRES_HOST=${{ secrets.MANDACARU_POSTGRES_HOST }} -e MANDACARU_POSTGRES_PORT=${{ secrets.MANDACARU_POSTGRES_PORT }} -e MANDACARU_POSTGRES_DB=${{ secrets.MANDACARU_POSTGRES_DB }} -e MANDACARU_POSTGRES_USER=${{ secrets.MANDACARU_POSTGRES_USER }} -e MANDACARU_POSTGRES_PASSWORD=${{ secrets.MANDACARU_POSTGRES_PASSWORD }} -e MANDACARU_SQL_INIT_MODE=${{ vars.MANDACARU_SQL_INIT_MODE }} -e MANDACARU_JWT_SECRET=${{ secrets.MANDACARU_JWT_SECRET }} -e MANDACARU_API_PORT=${{ vars.MANDACARU_API_PORT }} -p ${{ vars.MANDACARU_API_PORT }}:8080 -d ${{ secrets.DOCKERHUB_USERNAME }}/mandacarubroker-api'