# Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. name: "Tests" on: schedule: - cron: "45 2 * * *" pull_request: branches: - fast-dev - fast-dev-gke - master tags: - ci - test env: GOOGLE_APPLICATION_CREDENTIALS: "/home/runner/credentials.json" PYTEST_ADDOPTS: "--color=yes" PYTHON_VERSION: "3.10" TF_PLUGIN_CACHE_DIR: "/home/runner/.terraform.d/plugin-cache" TF_VERSION: 1.3.2 jobs: examples: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Config auth run: | echo '{"type": "service_account", "project_id": "test-only"}' \ | tee -a $GOOGLE_APPLICATION_CREDENTIALS - name: Set up Python uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up Terraform uses: hashicorp/setup-terraform@v2 with: terraform_version: ${{ env.TF_VERSION }} terraform_wrapper: false # avoid conflicts with user-installed providers on local machines - name: Pin provider versions run: | for f in $(find . -name versions.tf); do sed -i 's/>=\(.*# tftest\)/=\1/g' $f; done - name: Run tests on documentation examples id: pytest run: | mkdir -p ${{ env.TF_PLUGIN_CACHE_DIR }} pip install -r tests/requirements.txt pytest -vv tests/examples blueprints: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Config auth run: | echo '{"type": "service_account", "project_id": "test-only"}' \ | tee -a $GOOGLE_APPLICATION_CREDENTIALS - name: Set up Python uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up Terraform uses: hashicorp/setup-terraform@v2 with: terraform_version: ${{ env.TF_VERSION }} terraform_wrapper: false # avoid conflicts with user-installed providers on local machines - name: Pin provider versions run: | for f in $(find . -name versions.tf); do sed -i 's/>=\(.*# tftest\)/=\1/g' $f; done - name: Run tests environments id: pytest run: | mkdir -p ${{ env.TF_PLUGIN_CACHE_DIR }} pip install -r tests/requirements.txt pytest -vv tests/blueprints modules: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Config auth run: | echo '{"type": "service_account", "project_id": "test-only"}' \ | tee -a $GOOGLE_APPLICATION_CREDENTIALS - name: Set up Python uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up Terraform uses: hashicorp/setup-terraform@v2 with: terraform_version: ${{ env.TF_VERSION }} terraform_wrapper: false # avoid conflicts with user-installed providers on local machines - name: Pin provider versions run: | for f in $(find . -name versions.tf); do sed -i 's/>=\(.*# tftest\)/=\1/g' $f; done - name: Run tests modules id: pytest run: | mkdir -p ${{ env.TF_PLUGIN_CACHE_DIR }} pip install -r tests/requirements.txt pytest -vv tests/modules fast: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Config auth run: | echo '{"type": "service_account", "project_id": "test-only"}' \ | tee -a $GOOGLE_APPLICATION_CREDENTIALS - name: Set up Python uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Set up Terraform uses: hashicorp/setup-terraform@v2 with: terraform_version: ${{ env.TF_VERSION }} terraform_wrapper: false # avoid conflicts with user-installed providers on local machines - name: Pin provider versions run: | for f in $(find . -name versions.tf); do sed -i 's/>=\(.*# tftest\)/=\1/g' $f; done - name: Run tests on FAST stages id: pytest run: | mkdir -p ${{ env.TF_PLUGIN_CACHE_DIR }} pip install -r tests/requirements.txt pytest -vv tests/fast