From be43421fdd5cda9753441fb5b3b2952f88edb61f Mon Sep 17 00:00:00 2001 From: Julio Castillo Date: Wed, 27 Oct 2021 08:24:45 +0200 Subject: [PATCH 1/3] Use setup-terraform action --- .github/.terraformrc | 1 - .github/workflows/fake-key.json | 4 + .github/workflows/linting.yml | 14 +-- .github/workflows/tests-environment.yml | 49 ----------- .github/workflows/tests-examples.yml | 49 ----------- .github/workflows/tests-modules.yml | 49 ----------- .github/workflows/tests.yml | 112 ++++++++++++++++++++++++ 7 files changed, 123 insertions(+), 155 deletions(-) delete mode 100644 .github/.terraformrc create mode 100644 .github/workflows/fake-key.json delete mode 100644 .github/workflows/tests-environment.yml delete mode 100644 .github/workflows/tests-examples.yml delete mode 100644 .github/workflows/tests-modules.yml create mode 100644 .github/workflows/tests.yml diff --git a/.github/.terraformrc b/.github/.terraformrc deleted file mode 100644 index ace9fb3b..00000000 --- a/.github/.terraformrc +++ /dev/null @@ -1 +0,0 @@ -plugin_cache_dir = "$HOME/.terraform.d/plugin-cache" \ No newline at end of file diff --git a/.github/workflows/fake-key.json b/.github/workflows/fake-key.json new file mode 100644 index 00000000..4e2ea409 --- /dev/null +++ b/.github/workflows/fake-key.json @@ -0,0 +1,4 @@ +{ + "type": "service_account", + "project_id": "test-only" +} \ No newline at end of file diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index ec2a843f..da1875b6 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -34,14 +34,14 @@ jobs: with: python-version: '3.9' + - name: Set up Terraform + uses: hashicorp/setup-terraform@v1 + with: + terraform_version: 1.0.9 + - name: Install dependencies - run: | - python -m pip install --user --no-warn-script-location -r tools/REQUIREMENTS.txt && - wget https://releases.hashicorp.com/terraform/${_TERRAFORM_VERSION}/terraform_${_TERRAFORM_VERSION}_linux_amd64.zip && - unzip terraform_${_TERRAFORM_VERSION}_linux_amd64.zip -d $HOME/.local/bin && - rm terraform_${_TERRAFORM_VERSION}_linux_amd64.zip && - chmod 755 $HOME/.local/bin/terraform && - mkdir -p $HOME/.terraform.d/plugin-cache + run: | + pip install -r tools/REQUIREMENTS.txt - name: Boilerplate id: boilerplate diff --git a/.github/workflows/tests-environment.yml b/.github/workflows/tests-environment.yml deleted file mode 100644 index 733d4afa..00000000 --- a/.github/workflows/tests-environment.yml +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 2021 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 Environment' -on: - pull_request: - branches: - - master - tags: - - ci - - test -env: - _TERRAFORM_VERSION: 1.0.4 - TF_CLI_CONFIG_FILE: $GITHUB_WORKSPACE/.github/.terraformrc -jobs: - tests-environment: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - - name: Install dependencies - run: | - python -m pip install --user --no-warn-script-location -r tests/requirements.txt && - wget https://releases.hashicorp.com/terraform/${_TERRAFORM_VERSION}/terraform_${_TERRAFORM_VERSION}_linux_amd64.zip && - unzip terraform_${_TERRAFORM_VERSION}_linux_amd64.zip -d $HOME/.local/bin && - rm terraform_${_TERRAFORM_VERSION}_linux_amd64.zip && - chmod 755 $HOME/.local/bin/terraform && - mkdir -p $HOME/.terraform.d/plugin-cache - - - name: Boilerplate - id: test-environments - run: | - pytest -vv tests/cloud_operations tests/data_solutions tests/factories tests/foundations tests/networking \ No newline at end of file diff --git a/.github/workflows/tests-examples.yml b/.github/workflows/tests-examples.yml deleted file mode 100644 index 11a2bc4c..00000000 --- a/.github/workflows/tests-examples.yml +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 2021 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 Examples' -on: - pull_request: - branches: - - master - tags: - - ci - - test -env: - _TERRAFORM_VERSION: 1.0.4 - TF_CLI_CONFIG_FILE: $GITHUB_WORKSPACE/.github/.terraformrc -jobs: - tests-examples: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - - name: Install dependencies - run: | - python -m pip install --user --no-warn-script-location -r tests/requirements.txt && - wget https://releases.hashicorp.com/terraform/${_TERRAFORM_VERSION}/terraform_${_TERRAFORM_VERSION}_linux_amd64.zip && - unzip terraform_${_TERRAFORM_VERSION}_linux_amd64.zip -d $HOME/.local/bin && - rm terraform_${_TERRAFORM_VERSION}_linux_amd64.zip && - chmod 755 $HOME/.local/bin/terraform && - mkdir -p $HOME/.terraform.d/plugin-cache - - - name: Boilerplate - id: test-examples - run: | - pytest -vv tests/examples \ No newline at end of file diff --git a/.github/workflows/tests-modules.yml b/.github/workflows/tests-modules.yml deleted file mode 100644 index 34f650ca..00000000 --- a/.github/workflows/tests-modules.yml +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 2021 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 Modules' -on: - pull_request: - branches: - - master - tags: - - ci - - test -env: - _TERRAFORM_VERSION: 1.0.4 - TF_CLI_CONFIG_FILE: $GITHUB_WORKSPACE/.github/.terraformrc -jobs: - tests-modules: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: '3.9' - - - name: Install dependencies - run: | - python -m pip install --user --no-warn-script-location -r tests/requirements.txt && - wget https://releases.hashicorp.com/terraform/${_TERRAFORM_VERSION}/terraform_${_TERRAFORM_VERSION}_linux_amd64.zip && - unzip terraform_${_TERRAFORM_VERSION}_linux_amd64.zip -d $HOME/.local/bin && - rm terraform_${_TERRAFORM_VERSION}_linux_amd64.zip && - chmod 755 $HOME/.local/bin/terraform && - mkdir -p $HOME/.terraform.d/plugin-cache - - - name: Boilerplate - id: test-modules - run: | - pytest -vv tests/modules \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 00000000..e0bc48eb --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,112 @@ +# Copyright 2021 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 Environment' +on: + pull_request: + branches: + - master + tags: + - ci + - test +env: + _TERRAFORM_VERSION: 1.0.4 + TF_CLI_CONFIG_FILE: $GITHUB_WORKSPACE/.github/.terraformrc +jobs: + tests-environment: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.9' + + - name: Set up Terraform + uses: hashicorp/setup-terraform@v1 + with: + terraform_version: 1.0.9 + terraform_wrapper: false + + - name: Set environment + run: | + echo "GOOGLE_APPLICATION_CREDENTIALS=${GITHUB_WORKSPACE}/.github/workflows/dummy-key.json" >> $GITHUB_ENV + + - name: Install dependencies + run: | + pip install -r tests/requirements.txt + + - name: Boilerplate + id: test-environments + run: | + pytest -vv tests/cloud_operations tests/data_solutions tests/factories tests/foundations tests/networking + + tests-examples: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.9' + + - name: Set up Terraform + uses: hashicorp/setup-terraform@v1 + with: + terraform_version: 1.0.9 + terraform_wrapper: false + + - name: Set environment + run: | + echo "GOOGLE_APPLICATION_CREDENTIALS=${GITHUB_WORKSPACE}/.github/workflows/dummy-key.json" >> $GITHUB_ENV + + - name: Install dependencies + run: | + pip install -r tests/requirements.txt + + - name: Boilerplate + id: test-environments + run: | + pytest -vv tests/examples + + tests-modules: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.9' + + - name: Set up Terraform + uses: hashicorp/setup-terraform@v1 + with: + terraform_version: 1.0.9 + terraform_wrapper: false + + - name: Set environment + run: | + echo "GOOGLE_APPLICATION_CREDENTIALS=${GITHUB_WORKSPACE}/.github/workflows/dummy-key.json" >> $GITHUB_ENV + + - name: Install dependencies + run: | + pip install -r tests/requirements.txt + + - name: Boilerplate + id: test-environments + run: | + pytest -vv tests/modules \ No newline at end of file From 1974f7c84dde518689aef4e97e4ea77a7ddf42cb Mon Sep 17 00:00:00 2001 From: Julio Castillo Date: Wed, 27 Oct 2021 08:28:10 +0200 Subject: [PATCH 2/3] Remove env block --- .github/workflows/linting.yml | 4 +--- .github/workflows/tests.yml | 6 ++---- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index da1875b6..8319bb3b 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -20,9 +20,7 @@ on: tags: - ci - lint -env: - _TERRAFORM_VERSION: 1.0.4 - TF_CLI_CONFIG_FILE: $GITHUB_WORKSPACE/.github/.terraformrc + jobs: linting: runs-on: ubuntu-latest diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e0bc48eb..ca0219c5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -name: 'Tests Environment' +name: 'Tests' on: pull_request: branches: @@ -20,9 +20,7 @@ on: tags: - ci - test -env: - _TERRAFORM_VERSION: 1.0.4 - TF_CLI_CONFIG_FILE: $GITHUB_WORKSPACE/.github/.terraformrc + jobs: tests-environment: runs-on: ubuntu-latest From 63fd88dee395a5977a46d613ea96b641cd8a1ea6 Mon Sep 17 00:00:00 2001 From: Julio Castillo Date: Wed, 27 Oct 2021 08:31:41 +0200 Subject: [PATCH 3/3] fix fake key path --- .github/workflows/tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ca0219c5..47ac7f41 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -40,7 +40,7 @@ jobs: - name: Set environment run: | - echo "GOOGLE_APPLICATION_CREDENTIALS=${GITHUB_WORKSPACE}/.github/workflows/dummy-key.json" >> $GITHUB_ENV + echo "GOOGLE_APPLICATION_CREDENTIALS=${GITHUB_WORKSPACE}/.github/workflows/fake-key.json" >> $GITHUB_ENV - name: Install dependencies run: | @@ -69,7 +69,7 @@ jobs: - name: Set environment run: | - echo "GOOGLE_APPLICATION_CREDENTIALS=${GITHUB_WORKSPACE}/.github/workflows/dummy-key.json" >> $GITHUB_ENV + echo "GOOGLE_APPLICATION_CREDENTIALS=${GITHUB_WORKSPACE}/.github/workflows/fake-key.json" >> $GITHUB_ENV - name: Install dependencies run: | @@ -98,7 +98,7 @@ jobs: - name: Set environment run: | - echo "GOOGLE_APPLICATION_CREDENTIALS=${GITHUB_WORKSPACE}/.github/workflows/dummy-key.json" >> $GITHUB_ENV + echo "GOOGLE_APPLICATION_CREDENTIALS=${GITHUB_WORKSPACE}/.github/workflows/fake-key.json" >> $GITHUB_ENV - name: Install dependencies run: |