From 3909a405c930ec135450c46506f62c982d21c982 Mon Sep 17 00:00:00 2001 From: Gerald Iakobinyi-Pich Date: Wed, 24 Jul 2024 15:25:36 +0300 Subject: [PATCH] fix: adjusting workflows to latest changes in gh-workflows, adding back ci.yml --- .../workflows/build_and_deploy_generic.yml | 16 ++-- .github/workflows/ci.yml | 86 +++++++++++++++++++ .github/workflows/deploy_generic.yml | 41 ++++----- 3 files changed, 111 insertions(+), 32 deletions(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/build_and_deploy_generic.yml b/.github/workflows/build_and_deploy_generic.yml index 2f2ac003..bfb29ee3 100644 --- a/.github/workflows/build_and_deploy_generic.yml +++ b/.github/workflows/build_and_deploy_generic.yml @@ -42,7 +42,7 @@ jobs: AWS_ACCESS_KEY_ID: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/AWS_SECRET_ACCESS_KEY - id: build_and_push_docker_image - uses: passportxyz/gh-workflows/.github/actions/build_and_push@fix_build_dir + uses: passportxyz/gh-workflows/.github/actions/build_and_push@main with: refspec: ${{ needs.ref.outputs.refspec }} docker_tag: ${{ needs.ref.outputs.docker_tag }} @@ -68,7 +68,7 @@ jobs: AWS_ACCESS_KEY_ID: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/AWS_SECRET_ACCESS_KEY - id: build_and_push_docker_image - uses: passportxyz/gh-workflows/.github/actions/build_and_push@fix_build_dir + uses: passportxyz/gh-workflows/.github/actions/build_and_push@main with: refspec: ${{ needs.ref.outputs.refspec }} docker_tag: ${{ needs.ref.outputs.docker_tag }} @@ -94,7 +94,7 @@ jobs: AWS_ACCESS_KEY_ID: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/AWS_SECRET_ACCESS_KEY - id: build_and_push_docker_image - uses: passportxyz/gh-workflows/.github/actions/build_and_push@fix_build_dir + uses: passportxyz/gh-workflows/.github/actions/build_and_push@main with: refspec: ${{ needs.ref.outputs.refspec }} docker_tag: ${{ needs.ref.outputs.docker_tag }} @@ -105,6 +105,7 @@ jobs: dockerfile_name: ./indexer/Dockerfile build_dir: ./indexer/ + deploy_preview: name: Preview - Deploying AWS Infra needs: [ref, docker-ecs, docker-lambda, docker-indexer] @@ -131,9 +132,9 @@ jobs: AWS_SECRET_ACCESS_KEY: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/AWS_SECRET_ACCESS_KEY PULUMI_ACCESS_TOKEN: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/PULUMI_ACCESS_TOKEN - name: Prepare to Deploy to AWS - uses: ./.github/actions/prepare_deploy_to_aws + uses: passportxyz/gh-workflows/.github/actions/prepare_deploy_to_aws@main - name: Deploy Preview - uses: ./.github/actions/deploy_to_aws + uses: passportxyz/gh-workflows/.github/actions/deploy_to_aws@main with: docker_tag: ${{ needs.ref.outputs.docker_tag }} stack_name: gitcoin/scroll-badge-service/${{ inputs.environment }} @@ -181,12 +182,13 @@ jobs: AWS_SECRET_ACCESS_KEY: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/AWS_SECRET_ACCESS_KEY PULUMI_ACCESS_TOKEN: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/PULUMI_ACCESS_TOKEN - name: Prepare to Deploy to AWS - uses: ./.github/actions/prepare_deploy_to_aws + uses: passportxyz/gh-workflows/.github/actions/prepare_deploy_to_aws@main - name: Deploy Review - uses: ./.github/actions/deploy_to_aws + uses: passportxyz/gh-workflows/.github/actions/deploy_to_aws@main with: docker_tag: ${{ needs.ref.outputs.docker_tag }} stack_name: gitcoin/scroll-badge-service/${{ inputs.environment }} + pulumi_command: up aws_region: us-west-2 AWS_ACCESS_KEY_ID: ${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ env.AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..c195b84c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,86 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + api-test: + runs-on: ubuntu-latest + + services: + redis: + image: redis + # Set health checks to wait until redis has started + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 6379:6379 + + postgres: + image: postgres:12.3-alpine + env: + POSTGRES_USER: passport_scorer + POSTGRES_PASSWORD: passport_scorer_pwd + POSTGRES_DB: passport_scorer + + ports: + - 5432:5432 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: "3.11" + + - name: Install pipenv + run: pip3 install pipenv + + - name: Generate requirements.txt + working-directory: ./api + run: pipenv requirements --dev > requirements.txt + + - name: Install API dependencies + working-directory: ./api + run: pip3 install -r requirements.txt + + - name: Django Check + working-directory: ./api + env: + CERAMIC_CACHE_SCORER_ID: "" + SECRET_KEY: secret-test-value + run: python manage.py check + + - name: Run API unittests + working-directory: ./api + run: pytest + env: + CERAMIC_CACHE_SCORER_ID: "" + SECRET_KEY: secret-test-value + DATABASE_URL: postgres://passport_scorer:passport_scorer_pwd@localhost:5432/passport_scorer + DATA_MODEL_DATABASE_URL: postgres://passport_scorer:passport_scorer_pwd@localhost:5432/passport_scorer + FF_API_ANALYTICS: on + + ui-test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install UI dependencies + working-directory: ./interface + run: yarn --frozen-lockfile && yarn build + + - name: Run tests + working-directory: ./interface + run: yarn test diff --git a/.github/workflows/deploy_generic.yml b/.github/workflows/deploy_generic.yml index 19a77448..f644c8e2 100644 --- a/.github/workflows/deploy_generic.yml +++ b/.github/workflows/deploy_generic.yml @@ -17,13 +17,13 @@ jobs: runs-on: ubuntu-latest steps: - id: ref - uses: ./.github/actions/load_commit_ref + uses: passportxyz/gh-workflows/.github/actions/load_commit_ref@main with: commit: ${{ inputs.commit }} outputs: version_tag: ${{ steps.ref.outputs.version_tag }} - docker_tag: ${{ steps.ref.outputs.sha_short }} + docker_tag: ${{ steps.ref.outputs.docker_tag }} refspec: ${{ steps.ref.outputs.refspec }} deploy_preview: @@ -48,16 +48,13 @@ jobs: with: export-env: true env: - AWS_ACCESS_KEY_ID: op://DevOps/passport-scroll-badge-service-${{ inputs.environment }}-secrets/service/AWS_ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY: op://DevOps/passport-scroll-badge-service-${{ inputs.environment }}-secrets/service/AWS_SECRET_ACCESS_KEY - PULUMI_ACCESS_TOKEN: op://DevOps/passport-scroll-badge-service-${{ inputs.environment }}-secrets/service/PULUMI_ACCESS_TOKEN - ROUTE_53_DOMAIN: op://DevOps/passport-scroll-badge-service-${{ inputs.environment }}-env/service/ROUTE_53_DOMAIN - SCROLL_SECRETS_ARN: op://DevOps/passport-scroll-badge-service-${{ inputs.environment }}-env/service/SCROLL_SECRETS_ARN - VC_SECRETS_ARN: op://DevOps/passport-scroll-badge-service-${{ inputs.environment }}-env/service/VC_SECRETS_ARN + AWS_ACCESS_KEY_ID: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/AWS_SECRET_ACCESS_KEY + PULUMI_ACCESS_TOKEN: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/PULUMI_ACCESS_TOKEN - name: Prepare to Deploy to AWS - uses: ./.github/actions/prepare_deploy_to_aws - - name: Preview Deploy - uses: ./.github/actions/deploy_to_aws + uses: passportxyz/gh-workflows/.github/actions/prepare_deploy_to_aws@main + - name: Deploy Review + uses: passportxyz/gh-workflows/.github/actions/deploy_to_aws@main with: docker_tag: ${{ needs.ref.outputs.docker_tag }} stack_name: gitcoin/scroll-badge-service/${{ inputs.environment }} @@ -67,9 +64,7 @@ jobs: AWS_ACCESS_KEY_ID: ${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ env.AWS_SECRET_ACCESS_KEY }} PULUMI_ACCESS_TOKEN: ${{ env.PULUMI_ACCESS_TOKEN }} - ROUTE_53_DOMAIN: ${{ env.ROUTE_53_DOMAIN }} - SCROLL_SECRETS_ARN: ${{ env.SCROLL_SECRETS_ARN }} - VC_SECRETS_ARN: ${{ env.VC_SECRETS_ARN }} + OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} deploy_confirm: name: Review Approval Pending @@ -103,23 +98,19 @@ jobs: with: export-env: true env: - AWS_ACCESS_KEY_ID: op://DevOps/passport-scroll-badge-service-${{ inputs.environment }}-secrets/service/AWS_ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY: op://DevOps/passport-scroll-badge-service-${{ inputs.environment }}-secrets/service/AWS_SECRET_ACCESS_KEY - PULUMI_ACCESS_TOKEN: op://DevOps/passport-scroll-badge-service-${{ inputs.environment }}-secrets/service/PULUMI_ACCESS_TOKEN - ROUTE_53_DOMAIN: op://DevOps/passport-scroll-badge-service-${{ inputs.environment }}-env/service/ROUTE_53_DOMAIN - SCROLL_SECRETS_ARN: op://DevOps/passport-scroll-badge-service-${{ inputs.environment }}-env/service/SCROLL_SECRETS_ARN - VC_SECRETS_ARN: op://DevOps/passport-scroll-badge-service-${{ inputs.environment }}-env/service/VC_SECRETS_ARN + AWS_ACCESS_KEY_ID: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/AWS_SECRET_ACCESS_KEY + PULUMI_ACCESS_TOKEN: op://DevOps/passport-scorer-${{ inputs.environment }}-secrets/ci/PULUMI_ACCESS_TOKEN - name: Prepare to Deploy to AWS - uses: ./.github/actions/prepare_deploy_to_aws + uses: passportxyz/gh-workflows/.github/actions/prepare_deploy_to_aws@main - name: Deploy Review - uses: ./.github/actions/deploy_to_aws + uses: passportxyz/gh-workflows/.github/actions/deploy_to_aws@main with: docker_tag: ${{ needs.ref.outputs.docker_tag }} stack_name: gitcoin/scroll-badge-service/${{ inputs.environment }} + pulumi_command: up aws_region: us-west-2 AWS_ACCESS_KEY_ID: ${{ env.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ env.AWS_SECRET_ACCESS_KEY }} PULUMI_ACCESS_TOKEN: ${{ env.PULUMI_ACCESS_TOKEN }} - ROUTE_53_DOMAIN: ${{ env.ROUTE_53_DOMAIN }} - SCROLL_SECRETS_ARN: ${{ env.SCROLL_SECRETS_ARN }} - VC_SECRETS_ARN: ${{ env.VC_SECRETS_ARN }} + OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}