Skip to content

feat: add country code to geogate analytic #4321

feat: add country code to geogate analytic

feat: add country code to geogate analytic #4321

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
types: ['opened', 'edited', 'reopened', 'synchronize', 'ready_for_review']
jobs:
build:
if: github.event.pull_request.draft == false
environment: preview
runs-on: ubuntu-latest
name: Lint, tests, typechecking
env:
# environment secrets
VERIFIED_SWC_PARTNER_SECRET_COINBASE: ${{ secrets.VERIFIED_SWC_PARTNER_SECRET_COINBASE }}
DATABASE_URL: ${{ secrets.DATABASE_URL }}
DO_THEY_SUPPORT_IT_API_KEY: ${{ secrets.DO_THEY_SUPPORT_IT_API_KEY }}
THIRD_WEB_CLIENT_SECRET: ${{ secrets.THIRD_WEB_CLIENT_SECRET }}
THIRDWEB_AUTH_PRIVATE_KEY: ${{ secrets.THIRDWEB_AUTH_PRIVATE_KEY }}
CAPITOL_CANARY_API_KEY: ${{ secrets.CAPITOL_CANARY_API_KEY }}
CAPITOL_CANARY_API_SECRET: ${{ secrets.CAPITOL_CANARY_API_SECRET }}
CAPITOL_CANARY_WEBHOOK_SECRET: ${{ secrets.CAPITOL_CANARY_WEBHOOK_SECRET }}
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }}
UPSTASH_REDIS_REST_URL: ${{ secrets.UPSTASH_REDIS_REST_URL }}
UPSTASH_REDIS_REST_TOKEN: ${{ secrets.UPSTASH_REDIS_REST_TOKEN }}
INNGEST_EVENT_KEY: ${{ secrets.INNGEST_EVENT_KEY }}
INNGEST_SIGNING_KEY: ${{ secrets.INNGEST_SIGNING_KEY }}
COINBASE_COMMERCE_WEBHOOK_SECRET: ${{ secrets.COINBASE_COMMERCE_WEBHOOK_SECRET }}
THIRDWEB_ENGINE_ACCESS_TOKEN: ${{ secrets.THIRDWEB_ENGINE_ACCESS_TOKEN }}
TWILIO_AUTH_TOKEN: ${{ secrets.TWILIO_AUTH_TOKEN }}
GOOGLE_PLACES_BACKEND_API_KEY: ${{ secrets.GOOGLE_PLACES_BACKEND_API_KEY }}
BUILDER_IO_PRIVATE_KEY: ${{ secrets.BUILDER_IO_PRIVATE_KEY }}
BUILDER_IO_WEBHOOK_AUTH_TOKEN: ${{ secrets.BUILDER_IO_WEBHOOK_AUTH_TOKEN }}
DECISION_DESK_CLIENT_ID: ${{ secrets.DECISION_DESK_CLIENT_ID }}
DECISION_DESK_SECRET: ${{ secrets.DECISION_DESK_SECRET }}
# environment variables
LOCAL_USER_CRYPTO_ADDRESS: ${{vars.LOCAL_USER_CRYPTO_ADDRESS}}
NEXT_PUBLIC_ENVIRONMENT: ${{vars.NEXT_PUBLIC_ENVIRONMENT}}
NEXT_PUBLIC_GOOGLE_CIVIC_API_KEY: ${{vars.NEXT_PUBLIC_GOOGLE_CIVIC_API_KEY}}
NEXT_PUBLIC_GOOGLE_PLACES_API_KEY: ${{vars.NEXT_PUBLIC_GOOGLE_PLACES_API_KEY}}
NEXT_PUBLIC_MIXPANEL_PROJECT_TOKEN: ${{vars.NEXT_PUBLIC_MIXPANEL_PROJECT_TOKEN}}
SENDGRID_API_KEY: ${{secrets.SENDGRID_API_KEY}}
SENDGRID_SENDER: ${{vars.SENDGRID_SENDER}}
SENDGRID_WEBHOOK_VERIFICATION_KEY: ${{secrets.SENDGRID_WEBHOOK_VERIFICATION_KEY}}
NEXT_PUBLIC_SENTRY_DSN: ${{vars.NEXT_PUBLIC_SENTRY_DSN}}
NEXT_PUBLIC_THIRDWEB_AUTH_DOMAIN: ${{vars.NEXT_PUBLIC_THIRDWEB_AUTH_DOMAIN}}
NEXT_PUBLIC_THIRDWEB_CLIENT_ID: ${{vars.NEXT_PUBLIC_THIRDWEB_CLIENT_ID}}
TWILIO_ACCOUNT_SID: ${{vars.TWILIO_ACCOUNT_SID}}
TWILIO_MESSAGING_SERVICE_SID: ${{vars.TWILIO_MESSAGING_SERVICE_SID}}
MESSAGE_SEGMENTS_PER_SECOND: ${{vars.MESSAGE_SEGMENTS_PER_SECOND}}
MAX_QUEUE_LENGTH: ${{vars.MAX_QUEUE_LENGTH}}
DATABASE_QUERY_LIMIT: ${{vars.DATABASE_QUERY_LIMIT}}
SMS_PROVIDER: ${{vars.SMS_PROVIDER}}
SWC_PIZZA_DAY_NFT_CONTRACT_ADDRESS: ${{ vars.SWC_PIZZA_DAY_NFT_CONTRACT_ADDRESS }}
SWC_VOTER_ATTESTATION_NFT_CONTRACT_ADDRESS: ${{ vars.SWC_VOTER_ATTESTATION_NFT_CONTRACT_ADDRESS }}
SWC_SHIELD_NFT_CONTRACT_ADDRESS: ${{ vars.SWC_SHIELD_NFT_CONTRACT_ADDRESS }}
SWC_STOP_SMS_KEYWORD: ${{vars.SWC_STOP_SMS_KEYWORD}}
SWC_UNSTOP_SMS_KEYWORD: ${{vars.SWC_UNSTOP_SMS_KEYWORD}}
CALL_REPRESENTATIVE_NFT_CONTRACT_ADDRESS: ${{ vars.CALL_REPRESENTATIVE_NFT_CONTRACT_ADDRESS }}
I_AM_A_VOTER_CONTRACT_ADDRESS: ${{ vars.I_AM_A_VOTER_CONTRACT_ADDRESS }}
MINIMIZE_PAGE_PRE_GENERATION: ${{vars.MINIMIZE_PAGE_PRE_GENERATION}}
THIRDWEB_ENGINE_URL: ${{vars.THIRDWEB_ENGINE_URL}}
SWC_DOT_ETH_WALLET: ${{vars.SWC_DOT_ETH_WALLET}}
LEGACY_NFT_DEPLOYER_WALLET: ${{vars.LEGACY_NFT_DEPLOYER_WALLET}}
I_AM_A_VOTER_NFT_CONTRACT_ADDRESS: ${{ vars.I_AM_A_VOTER_NFT_CONTRACT_ADDRESS }}
NEXT_PUBLIC_BUILDER_IO_PUBLIC_KEY: ${{vars.NEXT_PUBLIC_BUILDER_IO_PUBLIC_KEY}}
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Cache node modules
uses: actions/cache@v3
id: cache
with:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/package-lock.json') }}
- name: Install dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: npm install
- name: Generate Prisma client
run: npx prisma generate
- name: Run codegen
run: npm run codegen
- name: Lint
run: npm run lint
- name: Test
run: NODE_ENV=test npm run test
- name: Typecheck
run: npm run typecheck