From 563ef270afaaba93595625eb2bc6e4670457a139 Mon Sep 17 00:00:00 2001 From: Ludovico Magnocavallo Date: Mon, 6 Mar 2023 10:38:39 +0100 Subject: [PATCH] Try plugin cache, split examples tests (#1215) * try plugin cache, split examples tests * fix mkdir * use cache --- .github/workflows/tests.yml | 81 ++++++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 760f8668..22f33645 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -31,7 +31,7 @@ env: TF_VERSION: 1.3.9 jobs: - examples: + examples-blueprints: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -54,6 +54,14 @@ jobs: terraform_version: ${{ env.TF_VERSION }} terraform_wrapper: false + - name: Configure provider cache + run: | + echo 'plugin_cache_dir = "$HOME/.terraform.d/plugin-cache"' \ + | tee -a $HOME/.terraformrc + echo 'disable_checkpoint = true' \ + | tee -a $HOME/.terraformrc + mkdir -p $HOME/.terraform.d/plugin-cache + # avoid conflicts with user-installed providers on local machines - name: Pin provider versions run: | @@ -66,7 +74,52 @@ jobs: run: | mkdir -p ${{ env.TF_PLUGIN_CACHE_DIR }} pip install -r tests/requirements.txt - pytest -vv tests/examples + pytest -vv -k blueprints/ tests/examples + + examples-modules: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - 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@v4 + with: + python-version: ${{ env.PYTHON_VERSION }} + cache: 'pip' + cache-dependency-path: 'tests/requirements.txt' + + - name: Set up Terraform + uses: hashicorp/setup-terraform@v2 + with: + terraform_version: ${{ env.TF_VERSION }} + terraform_wrapper: false + + - name: Configure provider cache + run: | + echo 'plugin_cache_dir = "$HOME/.terraform.d/plugin-cache"' \ + | tee -a $HOME/.terraformrc + echo 'disable_checkpoint = true' \ + | tee -a $HOME/.terraformrc + mkdir -p $HOME/.terraform.d/plugin-cache + + # 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 -k modules/ tests/examples blueprints: runs-on: ubuntu-latest @@ -91,6 +144,14 @@ jobs: terraform_version: ${{ env.TF_VERSION }} terraform_wrapper: false + - name: Configure provider cache + run: | + echo 'plugin_cache_dir = "$HOME/.terraform.d/plugin-cache"' \ + | tee -a $HOME/.terraformrc + echo 'disable_checkpoint = true' \ + | tee -a $HOME/.terraformrc + mkdir -p $HOME/.terraform.d/plugin-cache + # avoid conflicts with user-installed providers on local machines - name: Pin provider versions run: | @@ -128,6 +189,14 @@ jobs: terraform_version: ${{ env.TF_VERSION }} terraform_wrapper: false + - name: Configure provider cache + run: | + echo 'plugin_cache_dir = "$HOME/.terraform.d/plugin-cache"' \ + | tee -a $HOME/.terraformrc + echo 'disable_checkpoint = true' \ + | tee -a $HOME/.terraformrc + mkdir -p $HOME/.terraform.d/plugin-cache + # avoid conflicts with user-installed providers on local machines - name: Pin provider versions run: | @@ -165,6 +234,14 @@ jobs: terraform_version: ${{ env.TF_VERSION }} terraform_wrapper: false + - name: Configure provider cache + run: | + echo 'plugin_cache_dir = "$HOME/.terraform.d/plugin-cache"' \ + | tee -a $HOME/.terraformrc + echo 'disable_checkpoint = true' \ + | tee -a $HOME/.terraformrc + mkdir -p $HOME/.terraform.d/plugin-cache + # avoid conflicts with user-installed providers on local machines - name: Pin provider versions run: |