diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 733f0cce0..000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,735 +0,0 @@ ---- -# Copyright The Linux Foundation and each contributor to CommunityBridge. -# SPDX-License-Identifier: MIT -version: 2.1 - -environment: - BASH_ENV: ~/.bashrc - -setup_aws: &setup_aws - run: - name: Setup AWS key and Profile - command: | - touch ${BASH_ENV} - if ! grep -q AWS_ACCESS_KEY_ID ${BASH_ENV} ; then - echo "export AWS_ACCESS_KEY_ID='${!AWS_ACCESS_KEY_ID_ENV_VAR}'" >> ${BASH_ENV} - echo "Added AWS_ACCESS_KEY_ID to ${BASH_ENV}" - else - echo "Skipped adding AWS_ACCESS_KEY_ID to ${BASH_ENV} - already there" - fi - - if ! grep -q AWS_SECRET_ACCESS_KEY ${BASH_ENV} ; then - echo "export AWS_SECRET_ACCESS_KEY='${!AWS_SECRET_ACCESS_KEY_ENV_VAR}'" >> ${BASH_ENV} - echo "Added AWS_SECRET_ACCESS_KEY to ${BASH_ENV}" - else - echo "Skipped adding AWS_SECRET_ACCESS_KEY to ${BASH_ENV} - already there" - fi - - echo "Installing Profile '${AWS_PROFILE}'..." - mkdir -p ~/.aws - - touch ~/.aws/config - if ! grep -q AWS_PROFILE ~/.aws/config; then - printf "[profile ${AWS_PROFILE}]\nregion=${AWS_REGION}\noutput=json" > ~/.aws/config - echo "Added ${AWS_PROFILE} profile to ~/.aws/config" - else - echo "Skipped adding ${AWS_PROFILE} to ~/.aws/config - already there" - fi - - touch ~/.aws/credentials - if ! grep -q AWS_PROFILE ~/.aws/credentials; then - printf "[${AWS_PROFILE}]\naws_access_key_id=${!AWS_ACCESS_KEY_ID_ENV_VAR}\naws_secret_access_key=${!AWS_SECRET_ACCESS_KEY_ENV_VAR}" > ~/.aws/credentials - echo "Added ${AWS_PROFILE} profile to ~/.aws/credentials" - else - echo "Skipped adding ${AWS_PROFILE} to ~/.aws/credentials - already there" - fi - - if ! grep -q AWS_PROFILE ${BASH_ENV}; then - echo "export AWS_PROFILE=${AWS_PROFILE}" >> ${BASH_ENV} - echo "Added ${AWS_PROFILE} profile to ${BASH_ENV}" - else - echo "Skipped adding ${AWS_PROFILE} to ${BASH_ENV} - already there" - fi - -install_aws_cli: &install_aws_cli - run: - name: Install AWS CLI Tools - command: | - sudo apt-get update - sudo apt-get install -y curl zip unzip less - curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" - unzip awscliv2.zip - sudo ./aws/install - # sudo apt-get install -y awscli - -set_functional_test_environment: &set_functional_test_environment - run: - name: set deployment environment - command: | - cd && echo "Setting environment in $BASH_ENV for stage ${STAGE}" && touch $BASH_ENV - - # Note, we place single quotes around the values to ensure any values - # with dollar signs are not intrepreted and expanded by accident - # Default Test User (functional test) - echo "export AUTH0_USERNAME='${!AUTH0_USERNAME_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_PASSWORD='${!AUTH0_PASSWORD_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_CLIENT_ID='${!AUTH0_CLIENT_ID_ENV_VAR}'" >> ${BASH_ENV} - - # Prospective CLA Manager User (for functional tests) - echo "export AUTH0_USER1_EMAIL='${!AUTH0_USER1_EMAIL_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER1_USERNAME='${!AUTH0_USER1_USERNAME_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER1_PASSWORD='${!AUTH0_USER1_PASSWORD_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER1_CLIENT_ID='${!AUTH0_USER1_CLIENT_ID_ENV_VAR}'" >> ${BASH_ENV} - - # CLA Manager User (for functional tests) - echo "export AUTH0_USER2_EMAIL='${!AUTH0_USER2_EMAIL_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER2_USERNAME='${!AUTH0_USER2_USERNAME_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER2_PASSWORD='${!AUTH0_USER2_PASSWORD_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER2_CLIENT_ID='${!AUTH0_USER2_CLIENT_ID_ENV_VAR}'" >> ${BASH_ENV} - - # CLA Manager Intel (for functional tests) - echo "export AUTH0_USER3_EMAIL='${!AUTH0_USER3_EMAIL_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER3_USERNAME='${!AUTH0_USER3_USERNAME_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER3_PASSWORD='${!AUTH0_USER3_PASSWORD_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER3_CLIENT_ID='${!AUTH0_USER3_CLIENT_ID_ENV_VAR}'" >> ${BASH_ENV} - - # CLA Manager AT&T (for functional tests) - echo "export AUTH0_USER4_EMAIL='${!AUTH0_USER4_EMAIL_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER4_USERNAME='${!AUTH0_USER4_USERNAME_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER4_PASSWORD='${!AUTH0_USER4_PASSWORD_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER4_CLIENT_ID='${!AUTH0_USER4_CLIENT_ID_ENV_VAR}'" >> ${BASH_ENV} - - # Project Manager (for functional tests) - echo "export AUTH0_USER5_EMAIL='${!AUTH0_USER5_EMAIL_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER5_USERNAME='${!AUTH0_USER5_USERNAME_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER5_PASSWORD='${!AUTH0_USER5_PASSWORD_ENV_VAR}'" >> ${BASH_ENV} - echo "export AUTH0_USER5_CLIENT_ID='${!AUTH0_USER5_CLIENT_ID_ENV_VAR}'" >> ${BASH_ENV} - -step-library: - - &install_node_16 - run: - name: Install node 16 - command: | - source ${BASH_ENV} - echo "Running on ubuntu : $(lsb_release -d)" - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash - # If it doesn't automatically add nvm configuration, you can add it yourself to your profile file: - export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" - [ -s "${NVM_DIR}/nvm.sh" ] && \. "${NVM_DIR}/nvm.sh" - # With your profile configuration updated, now you will reload the configuration for your terminal to use: - source ${BASH_ENV} - node_version="v16.13.0" - echo "Installing node ${node_version}..." - nvm install ${node_version} - nvm alias default ${node_version} - echo "[ -s \"${NVM_DIR}/nvm.sh\" ] && . \"${NVM_DIR}/nvm.sh\"" >> $BASH_ENV - - &install_python_3_9 - run: - name: Install Python 3.9 - command: | - source ${BASH_ENV} - echo "Running on ubuntu : $(lsb_release -d)" - sudo apt-get update - sudo apt install curl git -y - if [ -d "$HOME/.pyenv" ]; then - echo "pyenv already installed" - echo "pyenv version : $(pyenv --version)" - else - echo "Installing pyenv..." - curl https://pyenv.run | bash - export PATH="$HOME/.pyenv/bin:$PATH" && eval "$(pyenv init --path)" && echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ${BASH_ENV} - # echo 'export PYENV_ROOT="$HOME/.pyenv"' >> $BASH_ENV - # echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> $BASH_ENV - # echo 'eval "$(pyenv init -)"' >> $BASH_ENV - echo "pyenv version : $(pyenv --version)" - fi - - # With your profile configuration updated, now you will reload the configuration for your terminal to use: - source ${BASH_ENV} - python_version="3.9.7" - pyenv install ${python_version} - pyenv global ${python_version} - python3 -m pip install --upgrade pip - echo "Python version : $(python3 --version)" - echo "Python Pip version : $(pip --version)" - - &install_yarn - run: - name: Install Yarn - command: | - source ${BASH_ENV} - echo "Running on ubuntu : $(lsb_release -d)" - sudo apt update && sudo apt install -y yarn - yarn --version - -jobs: - # Builds - buildBackend: &buildBackendAnchor - docker: - - image: cimg/python:3.9 - steps: - - checkout - - add_ssh_keys: - fingerprints: - - "e9:13:85:f1:b1:a1:25:bf:f5:44:34:66:82:1e:31:59" - - *setup_aws - - *install_aws_cli - - *install_python_3_9 - - *install_node_16 - - run: - name: Setup Backend - command: | - source ${BASH_ENV} - cd cla-backend - pyenv local 3.9.7 - echo "Running on ubuntu : $(lsb_release -d)" - echo "Python version : $(python3 --version)" - echo "Python Pip version : $(pip --version)" - sudo pip install -r requirements.txt - - run: - name: lint - command: | - source ${BASH_ENV} - cd cla-backend - pyenv local 3.9.7 - echo "Running on ubuntu : $(lsb_release -d)" - echo "Python version : $(python3 --version)" - echo "Python Pip version : $(pip --version)" - # Lint will always pass for now - need to continue addressing lint issues - pylint cla/*.py || true - - run: - name: test - command: | - source ${BASH_ENV} - cd cla-backend - pyenv local 3.9.7 - export GITHUB_OAUTH_TOKEN=${GITHUB_OAUTH_TOKEN} - pytest "cla/tests" -p no:warnings --cov="cla" - - buildBackendDev: - <<: *buildBackendAnchor - environment: - AWS_ACCESS_KEY_ID_ENV_VAR: AWS_ACCESS_KEY_ID_DEV - AWS_SECRET_ACCESS_KEY_ENV_VAR: AWS_SECRET_ACCESS_KEY_DEV - AWS_PROFILE: lf-cla - AWS_REGION: us-east-1 - STAGE: dev - - buildBackendProd: - <<: *buildBackendAnchor - environment: - AWS_ACCESS_KEY_ID_ENV_VAR: AWS_ACCESS_KEY_ID_PROD - AWS_SECRET_ACCESS_KEY_ENV_VAR: AWS_SECRET_ACCESS_KEY_PROD - AWS_PROFILE: lf-cla - AWS_REGION: us-east-1 - STAGE: prod - - buildGoBackend: &buildGoBackendAnchor - docker: - - image: cimg/go:1.19.5 - steps: - - checkout - - run: go version - - add_ssh_keys: - fingerprints: - - "e9:13:85:f1:b1:a1:25:bf:f5:44:34:66:82:1e:31:59" - - *setup_aws - - *install_aws_cli - - *install_python_3_9 - - *install_node_16 - - run: - name: Setup - command: | - source ${BASH_ENV} - pyenv local 3.9.7 - echo "Running on ubuntu : $(lsb_release -d)" - echo "Python version : $(python3 --version)" - echo "Python Pip version : $(pip --version)" - make -f cla-backend-go/Makefile setup-dev - - run: - name: Clean - command: | - source ${BASH_ENV} - cd cla-backend-go - make clean - - run: - name: Dependencies - command: | - source ${BASH_ENV} - cd cla-backend-go - make deps - - run: - name: Build Swagger - command: | - source ${BASH_ENV} - cd cla-backend-go - pyenv local 3.9.7 - make swagger - - run: - name: Build - command: | - source ${BASH_ENV} - cd cla-backend-go - echo "Building Lambdas..." - make build-lambdas-linux - echo "Building Functional Tests..." - make build-functional-tests-linux - - run: - name: Test - command: | - source ${BASH_ENV} - if [[ "${STAGE}" == "dev" ]]; then - cd cla-backend-go - make test - else - echo "Skipping test - only runs in dev stage." - fi - - run: - name: Lint - command: | - source ${BASH_ENV} - if [[ "${STAGE}" == "dev" ]]; then - cd cla-backend-go - make lint - else - echo "Skipping lint - only runs in dev stage." - fi - - run: - name: Move Binary - command: | - mv cla-backend-go ~/cla-backend-go - - persist_to_workspace: - root: ~/ - paths: - - cla-backend-go/bin/* - - buildGoBackendCommon: - <<: *buildGoBackendAnchor - environment: - STAGE: dev - AWS_ACCESS_KEY_ID_ENV_VAR: AWS_ACCESS_KEY_ID_DEV - AWS_SECRET_ACCESS_KEY_ENV_VAR: AWS_SECRET_ACCESS_KEY_DEV - AWS_PROFILE: lf-cla - AWS_REGION: us-east-1 - DYNAMODB_AWS_REGION: us-east-1 - - # Deploys Old API - deployV1Backend: &deployV1BackendAnchor - docker: - - image: cimg/python:3.9 - steps: - - attach_workspace: - at: ~/ - - checkout - - add_ssh_keys: - fingerprints: - - "e9:13:85:f1:b1:a1:25:bf:f5:44:34:66:82:1e:31:59" - - *setup_aws - - *install_aws_cli - - *install_python_3_9 - - *install_node_16 - - *install_yarn - - run: - name: Deploy EasyCLA v1 - command: | - echo "Using AWS profile: ${AWS_PROFILE}" - echo "Stage is: ${STAGE}" - - # -------------------------------------------------------------- - ## Debug to confirm the binary files were restored - echo "Directory: ~/" - ls -alF ~/ - echo "Directory: ~/cla-backend-go/" - ls -alF ~/cla-backend-go/ - ## End Debug - # -------------------------------------------------------------- - - # Copy over the go backend binary to the common cla-backend folder (they share a single serverless.yml config) - mkdir -p ~/project/cla-backend/bin - cp ~/cla-backend-go/bin/backend-aws-lambda ~/project/cla-backend/bin/ - cp ~/cla-backend-go/bin/user-subscribe-lambda ~/project/cla-backend/bin/ - cp ~/cla-backend-go/bin/metrics-aws-lambda ~/project/cla-backend/bin/ - cp ~/cla-backend-go/bin/metrics-report-lambda ~/project/cla-backend/bin/ - cp ~/cla-backend-go/bin/dynamo-events-lambda ~/project/cla-backend/bin/ - cp ~/cla-backend-go/bin/zipbuilder-scheduler-lambda ~/project/cla-backend/bin/ - cp ~/cla-backend-go/bin/zipbuilder-lambda ~/project/cla-backend/bin/ - cp ~/cla-backend-go/bin/gitlab-repository-check-lambda ~/project/cla-backend/bin/ - - ls -alF ~/project/cla-backend/ - pushd ~/project/cla-backend - echo "Directory: $(pwd)" - yarn install - - if [[ ! -f bin/backend-aws-lambda ]]; then echo "Missing bin/backend-aws-lambda binary file. Exiting..."; exit 1; fi - if [[ ! -f bin/user-subscribe-lambda ]]; then echo "Missing bin/user-subscribe-lambda binary file. Exiting..."; exit 1; fi - if [[ ! -f bin/metrics-aws-lambda ]]; then echo "Missing bin/metrics-aws-lambda binary file. Exiting..."; exit 1; fi - if [[ ! -f bin/metrics-report-lambda ]]; then echo "Missing bin/metrics-report-lambda binary file. Exiting..."; exit 1; fi - if [[ ! -f bin/dynamo-events-lambda ]]; then echo "Missing bin/dynamo-events-lambda binary file. Exiting..."; exit 1; fi - if [[ ! -f bin/zipbuilder-lambda ]]; then echo "Missing bin/zipbuilder-lambda binary file. Exiting..."; exit 1; fi - if [[ ! -f bin/zipbuilder-scheduler-lambda ]]; then echo "Missing bin/zipbuilder-scheduler-lambda binary file. Exiting..."; exit 1; fi - if [[ ! -f bin/gitlab-repository-check-lambda ]]; then echo "Missing bin/gitlab-repository-check-lambda binary file. Exiting..."; exit 1; fi - if [[ ! -f serverless.yml ]]; then echo "Missing serverless.yml file. Exiting..."; exit 1; fi - if [[ ! -f serverless-authorizer.yml ]]; then echo "Missing serverless-authorizer.yml file. Exiting..."; exit 1; fi - yarn sls deploy --force --stage ${STAGE} --region us-east-1 - - run: - name: Service Check - command: | - sudo apt-get install -y curl - v2_url='' - v3_url='' - if [[ "${STAGE}" == "prod" ]]; then - v2_url=https://api.easycla.lfx.linuxfoundation.org/v2/health - v3_url=https://api.easycla.lfx.linuxfoundation.org/v3/ops/health - else - v2_url=https://api.lfcla.${STAGE}.platform.linuxfoundation.org/v2/health - v3_url=https://api.lfcla.${STAGE}.platform.linuxfoundation.org/v3/ops/health - fi - - echo "Validating v2 backend using endpoint: ${v2_url}" - curl --fail -XGET ${v2_url} - exit_code=$? - if [[ ${exit_coe} -eq 0 ]]; then - echo "Successful response from endpoint: ${v2_url}" - else - echo "Failed to get a successful response from endpoint: ${v2_url}" - exit ${exit_code} - fi - - echo "Validating v3 backend using endpoint: ${v3_url}" - curl --fail -XGET ${v3_url} - exit_code=$? - if [[ ${exit_coe} -eq 0 ]]; then - echo "Successful response from endpoint: ${v3_url}" - # JSON response should include "Status": "healthy" - if [[ `curl -s -XGET ${v3_url} | jq -r '.Status'` == "healthy" ]]; then - echo "Service is healthy" - else - echo "Service is NOT healthy" - exit -1 - fi - else - echo "Failed to get a successful response from endpoint: ${v3_url}" - exit ${exit_code} - fi - - deployV2Backend: &deployV2BackendAnchor - docker: - - image: cimg/python:3.9 - steps: - - attach_workspace: - at: ~/ - - checkout - - add_ssh_keys: - fingerprints: - - "e9:13:85:f1:b1:a1:25:bf:f5:44:34:66:82:1e:31:59" - - *setup_aws - - *install_node_16 - - *install_yarn - - run: - name: Deploy EasyCLA v2 - command: | - echo "Using AWS profile: ${AWS_PROFILE}" - echo "Stage is: ${STAGE}" - - # -------------------------------------------------------------- - ## Debug to confirm the binary files were restored - echo "Directory: ~/" - ls -alF ~/ - echo "Directory: ~/cla-backend-go/" - ls -alF ~/cla-backend-go/ - ## End Debug - # -------------------------------------------------------------- - - mkdir -p ~/project/cla-backend-go/bin - cp ~/cla-backend-go/bin/backend-aws-lambda ~/project/cla-backend-go/bin/ - cp ~/cla-backend-go/bin/user-subscribe-lambda ~/project/cla-backend-go/bin/ - echo "Directory: ~/project/cla-backend-go/bin/" - ls -alF ~/project/cla-backend-go/bin/ - pushd ~/project/cla-backend-go - echo "Directory: $(pwd)" - if [[ ! -f bin/backend-aws-lambda ]]; then echo "Missing bin/backend-aws-lambda binary file. Exiting..."; exit 1; fi - if [[ ! -f bin/user-subscribe-lambda ]]; then echo "Missing bin/user-subscribe-lambda binary file. Exiting..."; exit 1; fi - yarn install - - # Deploy to us-east-2 - if [[ ! -f serverless.yml ]]; then echo "Missing serverless.yml file in $(pwd). Exiting..."; exit 1; fi - yarn sls deploy --force --stage ${STAGE} --region us-east-2 - - run: - name: Service Check - command: | - sudo apt-get install -y curl - v4_url='' - if [[ "${STAGE}" == "prod" ]]; then - v4_url=https://api-gw.platform.linuxfoundation.org/cla-service/v4/ops/health - else - v4_url=https://api-gw.${STAGE}.platform.linuxfoundation.org/cla-service/v4/ops/health - fi - - echo "Validating v4 backend using endpoint: ${v4_url}" - curl --fail -XGET ${v4_url} - exit_code=$? - if [[ ${exit_coe} -eq 0 ]]; then - echo "Successful response from endpoint: ${v4_url}" - # JSON response should include "Status": "healthy" - if [[ `curl -s -XGET ${v4_url} | jq -r '.Status'` == "healthy" ]]; then - echo "Service is healthy" - else - echo "Service is NOT healthy" - exit -1 - fi - else - echo "Failed to get a successful response from endpoint: ${v4_url}" - exit ${exit_code} - fi - - deployV1BackendDev: - <<: *deployV1BackendAnchor - environment: - AWS_ACCESS_KEY_ID_ENV_VAR: AWS_ACCESS_KEY_ID_DEV - AWS_SECRET_ACCESS_KEY_ENV_VAR: AWS_SECRET_ACCESS_KEY_DEV - AWS_PROFILE: lf-cla - AWS_REGION: us-east-1 - STAGE: dev - ROOT_DOMAIN: lfcla.dev.platform.linuxfoundation.org - PRODUCT_DOMAIN: dev.lfcla.com - - deployV1BackendProd: - <<: *deployV1BackendAnchor - environment: - AWS_ACCESS_KEY_ID_ENV_VAR: AWS_ACCESS_KEY_ID_PROD - AWS_SECRET_ACCESS_KEY_ENV_VAR: AWS_SECRET_ACCESS_KEY_PROD - AWS_PROFILE: lf-cla - AWS_REGION: us-east-1 - STAGE: prod - ROOT_DOMAIN: lfcla.platform.linuxfoundation.org - PRODUCT_DOMAIN: lfcla.com - - deployV2BackendDev: - <<: *deployV2BackendAnchor - environment: - AWS_ACCESS_KEY_ID_ENV_VAR: AWS_ACCESS_KEY_ID_DEV - AWS_SECRET_ACCESS_KEY_ENV_VAR: AWS_SECRET_ACCESS_KEY_DEV - AWS_PROFILE: lf-cla - AWS_REGION: us-east-1 - STAGE: dev - ROOT_DOMAIN: lfcla.dev.platform.linuxfoundation.org - PRODUCT_DOMAIN: dev.lfcla.com - - deployV2BackendProd: - <<: *deployV2BackendAnchor - environment: - AWS_ACCESS_KEY_ID_ENV_VAR: AWS_ACCESS_KEY_ID_PROD - AWS_SECRET_ACCESS_KEY_ENV_VAR: AWS_SECRET_ACCESS_KEY_PROD - AWS_PROFILE: lf-cla - AWS_REGION: us-east-1 - STAGE: prod - ROOT_DOMAIN: lfcla.platform.linuxfoundation.org - PRODUCT_DOMAIN: lfcla.com - - functionalTestsTavern: &functionalTestsTavern - docker: - - image: cimg/python:3.9-node - steps: - - attach_workspace: - at: ~/ - - checkout - - run: - name: setup - command: | - cd tests/rest - sudo pip3 install -r requirements.freeze.txt - echo "Installing curl and jq..." - sudo apt-get install -y curl jq - - *set_functional_test_environment - - run: - name: functional-tests - halt_build_on_fail: false # for now, we will pass all functional tests - command: | - echo "Running functional tests for stage: ${STAGE}" - cd tests/rest - tavern-ci test_*.tavern.yaml --alluredir=allure_result_folder -v || true - - functionalTestsGo: &functionalTestsGo - docker: - - image: cimg/go:1.19.5 - steps: - - attach_workspace: - at: ~/ - - checkout - - run: go version - - *set_functional_test_environment - - run: - name: functional-tests-go - command: | - source "${BASH_ENV}" - echo "Running golang functional tests for stage: ${STAGE}" - echo "Home directory : $(ls ${HOME})" - echo "${HOME}/cla-backend-go directory: $(ls ${HOME}/cla-backend-go)" - ${HOME}/cla-backend-go/bin/functional-tests - - functionalTestsTavernDev: - <<: *functionalTestsTavern - environment: - # Default Functional Test User - AUTH0_USERNAME_ENV_VAR: AUTH0_USERNAME_DEV - AUTH0_PASSWORD_ENV_VAR: AUTH0_PASSWORD_DEV - AUTH0_CLIENT_ID_ENV_VAR: AUTH0_CLIENT_ID_DEV - # Prospective CLA Manager User - AUTH0_USER1_EMAIL_ENV_VAR: AUTH0_USER1_EMAIL_DEV - AUTH0_USER1_USERNAME_ENV_VAR: AUTH0_USER1_USERNAME_DEV - AUTH0_USER1_PASSWORD_ENV_VAR: AUTH0_USER1_PASSWORD_DEV - AUTH0_USER1_CLIENT_ID_ENV_VAR: AUTH0_USER1_CLIENT_ID_DEV - # CLA Manager User - AUTH0_USER2_EMAIL_ENV_VAR: AUTH0_USER2_EMAIL_DEV - AUTH0_USER2_USERNAME_ENV_VAR: AUTH0_USER2_USERNAME_DEV - AUTH0_USER2_PASSWORD_ENV_VAR: AUTH0_USER2_PASSWORD_DEV - AUTH0_USER2_CLIENT_ID_ENV_VAR: AUTH0_USER2_CLIENT_ID_DEV - # CLA Manager Intel - AUTH0_USER3_EMAIL_ENV_VAR: AUTH0_USER3_EMAIL_DEV - AUTH0_USER3_USERNAME_ENV_VAR: AUTH0_USER3_USERNAME_DEV - AUTH0_USER3_PASSWORD_ENV_VAR: AUTH0_USER3_PASSWORD_DEV - AUTH0_USER3_CLIENT_ID_ENV_VAR: AUTH0_USER3_CLIENT_ID_DEV - # CLA Manager AT&T - AUTH0_USER4_EMAIL_ENV_VAR: AUTH0_USER4_EMAIL_DEV - AUTH0_USER4_USERNAME_ENV_VAR: AUTH0_USER4_USERNAME_DEV - AUTH0_USER4_PASSWORD_ENV_VAR: AUTH0_USER4_PASSWORD_DEV - AUTH0_USER4_CLIENT_ID_ENV_VAR: AUTH0_USER4_CLIENT_ID_DEV - # Project Manager ColorIO - AUTH0_USER5_EMAIL_ENV_VAR: AUTH0_USER5_EMAIL_DEV - AUTH0_USER5_USERNAME_ENV_VAR: AUTH0_USER5_USERNAME_DEV - AUTH0_USER5_PASSWORD_ENV_VAR: AUTH0_USER5_PASSWORD_DEV - AUTH0_USER5_CLIENT_ID_ENV_VAR: AUTH0_USER5_CLIENT_ID_DEV - API_URL: 'https://api.lfcla.dev.platform.linuxfoundation.org' - V2_API_URL: 'https://api-gw.dev.platform.linuxfoundation.org/cla-service' - STAGE: dev - - functionalTestsGoDev: - <<: *functionalTestsGo - environment: - # Default Functional Test User - AUTH0_USERNAME_ENV_VAR: AUTH0_USERNAME_DEV - AUTH0_PASSWORD_ENV_VAR: AUTH0_PASSWORD_DEV - AUTH0_CLIENT_ID_ENV_VAR: AUTH0_CLIENT_ID_DEV - # Prospective CLA Manager User - AUTH0_USER1_EMAIL_ENV_VAR: AUTH0_USER1_EMAIL_DEV - AUTH0_USER1_USERNAME_ENV_VAR: AUTH0_USER1_USERNAME_DEV - AUTH0_USER1_PASSWORD_ENV_VAR: AUTH0_USER1_PASSWORD_DEV - AUTH0_USER1_CLIENT_ID_ENV_VAR: AUTH0_USER1_CLIENT_ID_DEV - # CLA Manager User - AUTH0_USER2_EMAIL_ENV_VAR: AUTH0_USER2_EMAIL_DEV - AUTH0_USER2_USERNAME_ENV_VAR: AUTH0_USER2_USERNAME_DEV - AUTH0_USER2_PASSWORD_ENV_VAR: AUTH0_USER2_PASSWORD_DEV - AUTH0_USER2_CLIENT_ID_ENV_VAR: AUTH0_USER2_CLIENT_ID_DEV - # CLA Manager Intel - AUTH0_USER3_EMAIL_ENV_VAR: AUTH0_USER3_EMAIL_DEV - AUTH0_USER3_USERNAME_ENV_VAR: AUTH0_USER3_USERNAME_DEV - AUTH0_USER3_PASSWORD_ENV_VAR: AUTH0_USER3_PASSWORD_DEV - AUTH0_USER3_CLIENT_ID_ENV_VAR: AUTH0_USER3_CLIENT_ID_DEV - # CLA Manager AT&T - AUTH0_USER4_EMAIL_ENV_VAR: AUTH0_USER4_EMAIL_DEV - AUTH0_USER4_USERNAME_ENV_VAR: AUTH0_USER4_USERNAME_DEV - AUTH0_USER4_PASSWORD_ENV_VAR: AUTH0_USER4_PASSWORD_DEV - AUTH0_USER4_CLIENT_ID_ENV_VAR: AUTH0_USER4_CLIENT_ID_DEV - # Project Manager ColorIO - AUTH0_USER5_EMAIL_ENV_VAR: AUTH0_USER5_EMAIL_DEV - AUTH0_USER5_USERNAME_ENV_VAR: AUTH0_USER5_USERNAME_DEV - AUTH0_USER5_PASSWORD_ENV_VAR: AUTH0_USER5_PASSWORD_DEV - AUTH0_USER5_CLIENT_ID_ENV_VAR: AUTH0_USER5_CLIENT_ID_DEV - API_URL: 'https://api.lfcla.dev.platform.linuxfoundation.org' - V2_API_URL: 'https://api-gw.dev.platform.linuxfoundation.org/cla-service' - STAGE: dev - -workflows: - version: 2.1 - build_and_deploy: - jobs: - - buildBackendDev: - filters: - tags: - only: /.*/ - - buildGoBackendCommon: - filters: - tags: - only: /.*/ - - # Deploy v1 Dev - - deployV1BackendDev: - requires: - - buildBackendDev - - buildGoBackendCommon - filters: - tags: - ignore: /.*/ - branches: - only: - - main - # Deploy v2 Dev - - deployV2BackendDev: - requires: - - buildGoBackendCommon - filters: - tags: - ignore: /.*/ - branches: - only: - - main - - functionalTestsGoDev: - requires: - - deployV1BackendDev - - deployV2BackendDev - filters: - tags: - ignore: /.*/ - branches: - only: - - main - - functionalTestsTavernDev: - requires: - - deployV1BackendDev - - deployV2BackendDev - filters: - tags: - ignore: /.*/ - branches: - only: - - main - - # Deploy Prod - - buildBackendProd: - filters: - branches: - ignore: /.*/ - tags: - # see semver examples https://regex101.com/r/Ly7O1x/201/ - only: /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/ - - approve_prod: - type: approval - requires: - - buildBackendProd - - buildGoBackendCommon - filters: - branches: - ignore: /.*/ - tags: - # see semver examples https://regex101.com/r/Ly7O1x/201/ - only: /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/ - - deployV1BackendProd: - requires: - - approve_prod - - buildBackendProd - - buildGoBackendCommon - filters: - branches: - ignore: /.*/ - tags: - # see semver examples https://regex101.com/r/Ly7O1x/201/ - only: /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/ - - deployV2BackendProd: - requires: - - approve_prod - - buildGoBackendCommon - filters: - branches: - ignore: /.*/ - tags: - # see semver examples https://regex101.com/r/Ly7O1x/201/ - only: /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/ diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index 182105724..8e88e8d50 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -32,7 +32,7 @@ jobs: - name: Setup python uses: actions/setup-python@v4 with: - python-version: '3.9' + python-version: '3.7' cache: 'pip' - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml index 5e7c4dfe0..c2fa55f70 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-dev.yml @@ -32,7 +32,7 @@ jobs: - name: Setup python uses: actions/setup-python@v4 with: - python-version: '3.9' + python-version: '3.7' cache: 'pip' - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index 8f2b5224e..f6e4e7531 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -35,7 +35,7 @@ jobs: - name: Setup python uses: actions/setup-python@v4 with: - python-version: '3.9' + python-version: '3.7' cache: 'pip' - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 diff --git a/cla-backend/.python-version b/cla-backend/.python-version deleted file mode 100644 index 9f3d4c178..000000000 --- a/cla-backend/.python-version +++ /dev/null @@ -1 +0,0 @@ -3.9.16 diff --git a/cla-backend/requirements.txt b/cla-backend/requirements.txt index b6819cb56..a2b97ca1a 100644 --- a/cla-backend/requirements.txt +++ b/cla-backend/requirements.txt @@ -52,7 +52,7 @@ sentinels==1.0.0 six==1.13.0 soupsieve==1.9.5 termcolor==1.1.0 -typed-ast==1.5.4 +typed-ast==1.4.1 urllib3==1.25.9 vintage==0.4.1 wcwidth==0.1.7 diff --git a/cla-backend/serverless.yml b/cla-backend/serverless.yml index b74bbc5ca..0a52089e7 100644 --- a/cla-backend/serverless.yml +++ b/cla-backend/serverless.yml @@ -101,7 +101,7 @@ custom: provider: name: aws - runtime: python3.9 + runtime: python3.7 stage: ${env:STAGE} region: us-east-1 timeout: 60 # optional, in seconds, default is 6