From ac04002d54664b0b81c24fcdd66f77075d283371 Mon Sep 17 00:00:00 2001 From: Sudip Bhattarai Date: Sat, 17 Aug 2024 16:22:04 +0545 Subject: [PATCH] Use bash script instead of ansible --- .../workflows/build-and-deploy-test-stack.yml | 70 ++++++++++++------- 1 file changed, 44 insertions(+), 26 deletions(-) diff --git a/.github/workflows/build-and-deploy-test-stack.yml b/.github/workflows/build-and-deploy-test-stack.yml index f003258c8..21c2ec04c 100644 --- a/.github/workflows/build-and-deploy-test-stack.yml +++ b/.github/workflows/build-and-deploy-test-stack.yml @@ -15,39 +15,57 @@ jobs: deploy: name: Deploy app runs-on: ubuntu-latest - env: - GRAFANA_ADMIN_PASSWORD: ${{ secrets.GRAFANA_ADMIN_PASSWORD }} - GRAFANA_SLACK_RECIPIENT: ${{ secrets.GRAFANA_SLACK_RECIPIENT }} - GRAFANA_SLACK_OAUTH_TOKEN: ${{ secrets.GRAFANA_SLACK_OAUTH_TOKEN }} - SENTRY_DSN_BACKEND: ${{ secrets.SENTRY_DSN_BACKEND }} - GTM_ID: ${{ secrets.GTM_ID }} - NPMRC_TOKEN: ${{ secrets.NPMRC_TOKEN }} - SENTRY_DSN_FRONTEND: ${{ secrets.SENTRY_DSN_FRONTEND }} - PIPELINE_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} - USERSNAP_SPACE_API_KEY: ${{ secrets.USERSNAP_SPACE_API_KEY }} - APP_ENV: test - PDF_API_URL: ${{ secrets.PDF_API_URL}} steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Setup SSH agent - uses: webfactory/ssh-agent@v0.8.0 + - name: Set up SSH and deploy + uses: appleboy/ssh-action@v1.0.3 with: - ssh-private-key: ${{ secrets.TEST_STACK_SSH_KEY }} - - - name: Run Ansible playbook - uses: dawidd6/action-ansible-playbook@v2 - with: - playbook: playbook.yml - directory: ./tests/test-infrastructure + host: ${{ secrets.TEST_STACK_SERVER_IP }} + username: ec2-user key: ${{ secrets.TEST_STACK_SSH_KEY }} - inventory: | - [test_server] - ${{ secrets.TEST_STACK_SERVER_IP }} ansible_user=ec2-user - options: | - --verbose + script: | + REPO_URL="https://github.com/${{ github.repository }}" + DEST_DIR="/opt/govtool" + + # Check if /opt/govtool exists + if [ -d "$DEST_DIR" ]; then + if [ -d "$DEST_DIR/.git" ]; then + cd $DEST_DIR || exit + echo "Updating repository..." + git fetch --all + git checkout --force "$GOVTOOL_TAG" + else + echo "Not a git repository. Re-cloning..." + rm -rf "$DEST_DIR" + git clone "$REPO_URL" "$DEST_DIR" + cd "$DEST_DIR" || exit + git checkout --force "$GOVTOOL_TAG" + fi + else + echo "Directory does not exist. Cloning repository..." + git clone "$REPO_URL" "$DEST_DIR" + cd "$DEST_DIR" || exit + git checkout --force "$GOVTOOL_TAG" + fi + + # Execute the build-and-deploy.sh script + cd $DEST_DIR/tests/test-infrastructure + ./build-and-deploy.sh update-images + env: GOVTOOL_TAG: ${{ github.sha }} + GRAFANA_ADMIN_PASSWORD: ${{ secrets.GRAFANA_ADMIN_PASSWORD }} + GRAFANA_SLACK_RECIPIENT: ${{ secrets.GRAFANA_SLACK_RECIPIENT }} + GRAFANA_SLACK_OAUTH_TOKEN: ${{ secrets.GRAFANA_SLACK_OAUTH_TOKEN }} + SENTRY_DSN_BACKEND: ${{ secrets.SENTRY_DSN_BACKEND }} + GTM_ID: ${{ secrets.GTM_ID }} + NPMRC_TOKEN: ${{ secrets.NPMRC_TOKEN }} + SENTRY_DSN_FRONTEND: ${{ secrets.SENTRY_DSN_FRONTEND }} + PIPELINE_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} + USERSNAP_SPACE_API_KEY: ${{ secrets.USERSNAP_SPACE_API_KEY }} + APP_ENV: test + PDF_API_URL: ${{ secrets.PDF_API_URL}}