diff --git a/.github/workflows/kitchen-tests.yml b/.github/workflows/kitchen-tests.yml deleted file mode 100644 index 9cdec5c..0000000 --- a/.github/workflows/kitchen-tests.yml +++ /dev/null @@ -1,127 +0,0 @@ -name: kitchen-tests - -on: - push: - branches: - - "main" - tags: - - "v*.*.*" - pull_request: - branches: - - "main" - -env: - REGISTRY: ghcr.io - IMAGE_NAME: brownuniversity/terraform-gcp-cluster - -jobs: - docker: - runs-on: ubuntu-latest - - permissions: - packages: write - contents: read - - outputs: - full_image_id: ${{ steps.save_full_image_id.outputs.full_image_id }} - - steps: - - uses: actions/checkout@v3 - - - uses: dorny/paths-filter@v2.2.0 - id: filter - with: - base: ${{ github.ref }} - filters: | - all: - - '.github/workflows/kitchen-tests.yml' - - 'Dockerfile' - - 'Gemfile*' - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Log in to the Container registry - uses: docker/login-action@v2 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v4 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - tags: | - type=ref,event=branch - type=ref,event=pr - type=semver,pattern={{major}}.{{minor}} - - # NOTE: We are tapping into json output because tags could become a list if prior step is modified - - id: save_full_image_id - run: echo "full_image_id=${{ fromJSON(steps.meta.outputs.json).tags[0] }}" >> $GITHUB_OUTPUT - - - name: print_tag - run: echo "${{ fromJSON(steps.meta.outputs.json).tags[0] }}" - - - name: Build and push Docker image - uses: docker/build-push-action@v4 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache - - simple-cluster: - needs: [docker] - if: "!contains(github.event.commits[0].message, '[skip ci]')" - runs-on: ubuntu-latest - container: - image: "${{ needs.docker.outputs.full_image_id }}" - steps: - - uses: actions/checkout@v3 - - name: Create Credential File - run: | - echo "$GCP_CREDENTIAL_JSON" | base64 -d > /tmp/credentials.json - env: - GCP_CREDENTIAL_JSON: ${{ secrets.GCP_CI_CREDENTIAL_JSON}} - - name: Run Kitchen - run: kitchen test simple-cluster - env: - TF_VAR_billing_account: ${{ secrets.GCP_BURWOOD_BILLING_ACCOUNT }} - TF_VAR_org_id: ${{ secrets.GCP_ORG_ID }} - TF_VAR_folder_id: ${{ secrets.GCP_CCV_CI_FOLDER_ID }} - TF_VAR_network_name: "network-01" - TF_VAR_subnet_name: "subnet-01" - TF_VAR_routing_mode: "REGIONAL" - GOOGLE_APPLICATION_CREDENTIALS: /tmp/credentials.json - - brown-modules: - needs: [docker] - if: "!contains(github.event.commits[0].message, '[skip ci]')" - runs-on: ubuntu-latest - container: - image: "${{ needs.docker.outputs.full_image_id }}" - steps: - - uses: actions/checkout@v3 - - name: Create Credential File - run: | - echo "$GCP_CREDENTIAL_JSON" | base64 -d > /tmp/credentials.json - env: - GCP_CREDENTIAL_JSON: ${{ secrets.GCP_CI_CREDENTIAL_JSON}} - - name: Run Kitchen - run: kitchen test brown-modules-cluster - env: - TF_VAR_billing_account: ${{ secrets.GCP_BURWOOD_BILLING_ACCOUNT }} - TF_VAR_org_id: ${{ secrets.GCP_ORG_ID }} - TF_VAR_folder_id: ${{ secrets.GCP_CCV_CI_FOLDER_ID }} - TF_VAR_network_name: "network-01" - TF_VAR_subnet_name: "subnet-01" - TF_VAR_routing_mode: "REGIONAL" - GOOGLE_APPLICATION_CREDENTIALS: /tmp/credentials.json diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml index 9c6c65f..5afdeff 100644 --- a/.github/workflows/pr-labeler.yml +++ b/.github/workflows/pr-labeler.yml @@ -7,7 +7,7 @@ jobs: pr-labeler: runs-on: ubuntu-latest steps: - - uses: TimonVS/pr-labeler-action@v3 + - uses: TimonVS/pr-labeler-action@v5 with: configuration-path: .github/pr-labeler.yml # optional, .github/pr-labeler.yml is the default value env: diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index e43769d..97f1b03 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: # Drafts your next Release notes as Pull Requests are merged into "master" - - uses: release-drafter/release-drafter@v5 + - uses: release-drafter/release-drafter@v6 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/terraform-tests.yml b/.github/workflows/terraform-tests.yml new file mode 100644 index 0000000..69c2a5a --- /dev/null +++ b/.github/workflows/terraform-tests.yml @@ -0,0 +1,43 @@ +name: kitchen-tests + +on: + push: + branches: + - "main" + tags: + - "v*.*.*" + pull_request: + branches: + - "main" + +env: + REGISTRY: ghcr.io + IMAGE_NAME: brownuniversity/terraform-gcp-cluster + +jobs: + terraform_tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Create Credential File + run: | + echo "$GCP_CREDENTIAL_JSON" | base64 -d > /tmp/credentials.json + env: + GCP_CREDENTIAL_JSON: ${{ secrets.GCP_CI_CREDENTIAL_JSON}} + - name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 1.9.2 + - name: Run terraform test + run: | + terraform init + terraform test -filter=tests/test_simple_cluster.tftest.hcl + terraform test -filter=tests/test_brown_modules.tftest.hcl + env: + TF_VAR_billing_account: ${{ secrets.GCP_BURWOOD_BILLING_ACCOUNT }} + TF_VAR_org_id: ${{ secrets.GCP_ORG_ID }} + TF_VAR_folder_id: ${{ secrets.GCP_CCV_CI_FOLDER_ID }} + TF_VAR_network_name: "network-01" + TF_VAR_subnet_name: "subnet-01" + TF_VAR_routing_mode: "REGIONAL" + GOOGLE_APPLICATION_CREDENTIALS: /tmp/credentials.json