From 3e63389140c75942faf3fd9ca1b1759a56d66936 Mon Sep 17 00:00:00 2001 From: jlewitt1 Date: Wed, 27 Dec 2023 01:37:57 +0200 Subject: [PATCH] add new GH yaml --- .github/workflows/local_den_unit_tests.yaml | 90 +++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 .github/workflows/local_den_unit_tests.yaml diff --git a/.github/workflows/local_den_unit_tests.yaml b/.github/workflows/local_den_unit_tests.yaml new file mode 100644 index 0000000000..54ef78c1f3 --- /dev/null +++ b/.github/workflows/local_den_unit_tests.yaml @@ -0,0 +1,90 @@ +name: Local Den Unit Tests + +on: + push: + branches: +# - main + - run-gh-apps-locally + pull_request: + branches: + - '*' + workflow_dispatch: + +jobs: + run-tests-locally: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.TEST_AWS_ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.TEST_AWS_SECRET_KEY }} + aws-region: us-east-1 + + - name: Start local MongoDB + uses: supercharge/mongodb-github-action@1.10.0 + with: + mongodb-version: '4.0' + +# - name: Setup Runhouse +# uses: ./.github/workflows/setup_runhouse +# +# - name: Setup Runhouse Config +# uses: ./.github/workflows/setup_rh_config +# with: +# username: ${{ secrets.TEST_USERNAME }} +# token: ${{ secrets.TEST_TOKEN }} + +# - name: Update Server URL in Runhouse Config +# run: | +# echo "api_server_url: localhost:8000" >> ~/.rh/config.yaml + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v1 + + - name: Create env_file for Den container + run: | + echo "JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }}" >> env_file + echo "ACCESS_TOKEN_EXPIRE_DAYS=${{ secrets.ACCESS_TOKEN_EXPIRE_DAYS }}" >> env_file + echo "TOKEN_URL=${{ secrets.TOKEN_URL }}" >> env_file + echo "GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }}" >> env_file + echo "GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }}" >> env_file + echo "GH_CLIENT_ID=${{ secrets.GH_CLIENT_ID }}" >> env_file + echo "GH_CLIENT_SECRET=${{ secrets.GH_CLIENT_SECRET }}" >> env_file + echo "SECRET_KEY=${{ secrets.SECRET_KEY }}" >> env_file + echo "VAULT_URL=${{ secrets.VAULT_URL }}" >> env_file + echo "VAULT_NAMESPACE=${{ secrets.VAULT_NAMESPACE }}" >> env_file + echo "VAULT_ROLE_ID=${{ secrets.VAULT_ROLE_ID }}" >> env_file + echo "VAULT_SECRET_ID=${{ secrets.VAULT_SECRET_ID }}" >> env_file + echo "TEST_ACCOUNT_TOKEN=${{ env.TEST_ACCOUNT_TOKEN }}" >> env_file + echo "SHARED_ACCOUNT_TOKEN=${{ env.SHARED_ACCOUNT_TOKEN }}" >> env_file + echo "DEV_MODE=true" >> env_file + + - name: Start Den container + run: | + docker run --env-file env_file ${{ secrets.ECR_URL }}/runhouse-auth:prod-61370a76 + + - name: Wait for Den app to become ready + run: | + count=0 + max_attempts=12 # 1 minute timeout + until $(curl --output /dev/null --silent --head --fail http://localhost:8000); do + if [ $count -eq $max_attempts ]; then + echo "Timed out waiting for Den app to start" + exit 1 + fi + printf '.' + sleep 5 + count=$((count+1)) + done + + - name: Run unit tests + env: + TEST_TOKEN: ${{ secrets.TEST_TOKEN }} + TEST_USERNAME: ${{ secrets.TEST_USERNAME }} + run: pytest -v --level unit