diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000000..4871cb4eb4 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,55 @@ +ci/run-unit/@cdktf/cli-core: + # The workflow used + - ".github/workflows/unit.yml" + # All packages under test + - "packages/@cdktf/cli-core/**" + # All scripts we use + - "tools/align-version.sh" + +ci/run-unit/@cdktf/commons: + # The workflow used + - ".github/workflows/unit.yml" + # All packages under test + - "packages/@cdktf/commons/**" + # All scripts we use + - "tools/align-version.sh" + +ci/run-unit/@cdktf/hcl2cdk: + # The workflow used + - ".github/workflows/unit.yml" + # All packages under test + - "packages/@cdktf/hcl2cdk/**" + # All scripts we use + - "tools/align-version.sh" + +ci/run-unit/@cdktf/hcl2json: + # The workflow used + - ".github/workflows/unit.yml" + # All packages under test + - "packages/@cdktf/hcl2json/**" + # All scripts we use + - "tools/align-version.sh" + +ci/run-unit/@cdktf/provider-generator: + # The workflow used + - ".github/workflows/unit.yml" + # All packages under test + - "packages/@cdktf/provider-generator/**" + # All scripts we use + - "tools/align-version.sh" + +ci/run-unit/cdktf-cli: + # The workflow used + - ".github/workflows/unit.yml" + # All packages under test + - "packages/cdktf-cli/**" + # All scripts we use + - "tools/align-version.sh" + +ci/run-unit/cdktf: + # The workflow used + - ".github/workflows/unit.yml" + # All packages under test + - "packages/cdktf/**" + # All scripts we use + - "tools/align-version.sh" diff --git a/.github/workflows/examples-pr.yml b/.github/workflows/examples-pr.yml index f6cba6ccb3..470005af01 100644 --- a/.github/workflows/examples-pr.yml +++ b/.github/workflows/examples-pr.yml @@ -1,6 +1,5 @@ name: Examples - PR on: - pull_request: {} pull_request_target: types: - opened @@ -11,7 +10,7 @@ on: jobs: examples: - if: contains(github.event.pull_request.labels.*.name, 'ci/run-examples') || contains(github.event.pull_request.labels.*.name, 'ci/run-all') + if: ${{ contains(github.event.pull_request.labels.*.name, 'ci/run-examples') || contains(github.event.pull_request.labels.*.name, 'ci/run-all') }} uses: ./.github/workflows/examples.yml with: concurrency_group_prefix: pr diff --git a/.github/workflows/integration-pr.yml b/.github/workflows/integration-pr.yml index b13094bec2..89ea62522e 100644 --- a/.github/workflows/integration-pr.yml +++ b/.github/workflows/integration-pr.yml @@ -1,6 +1,5 @@ name: Integration Tests - PR on: - pull_request: {} pull_request_target: types: - opened @@ -11,7 +10,7 @@ on: jobs: integration_test: - if: contains(github.event.pull_request.labels.*.name, 'ci/run-integration') || contains(github.event.pull_request.labels.*.name, 'ci/run-all') + if: ${{ contains(github.event.pull_request.labels.*.name, 'ci/run-integration') || contains(github.event.pull_request.labels.*.name, 'ci/run-all') }} uses: ./.github/workflows/integration.yml with: concurrency_group_prefix: pr diff --git a/.github/workflows/pr-size.yml b/.github/workflows/pr-labels.yml similarity index 70% rename from .github/workflows/pr-size.yml rename to .github/workflows/pr-labels.yml index b8caafaf30..e1dd30680c 100644 --- a/.github/workflows/pr-size.yml +++ b/.github/workflows/pr-labels.yml @@ -1,9 +1,20 @@ -name: PR Size label - +name: "Pull Request Labeler" on: [pull_request] jobs: - labeler: + pr_ci_trigger: + permissions: + contents: read + pull-requests: write + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@v4 + with: + # The config file lives under .github/labeler.yml + repo-token: "${{ secrets.GITHUB_TOKEN }}" + sync-labels: false # If set to true we could not easily overwrite it individually + + pr_size: runs-on: ubuntu-latest name: Label the PR size steps: diff --git a/.github/workflows/release_next.yml b/.github/workflows/release_next.yml index 6bc6f54b8b..047854e205 100644 --- a/.github/workflows/release_next.yml +++ b/.github/workflows/release_next.yml @@ -3,11 +3,6 @@ on: push: branches: - main - paths: - - "packages/**" - - "tools/**" - - "package.json" - - "yarn.lock" env: SENTRY_ORG: hashicorp diff --git a/.github/workflows/unit-@cdktf-api-core.yml b/.github/workflows/unit-@cdktf-api-core.yml deleted file mode 100644 index 92110bf59e..0000000000 --- a/.github/workflows/unit-@cdktf-api-core.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Unit Tests - @cdktf/api-core -on: - pull_request: - paths: - # This workflow - - ".github/workflows/unit-@cdktf-api-core.yml" - # All packages under test - - "packages/@cdktf/api-core/**" - # All scripts we use - - "tools/build-unit-test-matrix.sh" - - "tools/align-version.sh" - -jobs: - unit_test: - uses: ./.github/workflows/unit.yml - strategy: - fail-fast: false - matrix: - terraform_version: ["1.2.8"] - with: - concurrency_group_prefix: pr-cdktf-core - package: "@cdktf/api-core" - terraform_version: ${{ matrix.terraform_version }} - secrets: inherit diff --git a/.github/workflows/unit-@cdktf-commons.yml b/.github/workflows/unit-@cdktf-commons.yml deleted file mode 100644 index 2f99688cfd..0000000000 --- a/.github/workflows/unit-@cdktf-commons.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Unit Tests - @cdktf/commons -on: - pull_request: - paths: - # This workflow - - ".github/workflows/unit-@cdktf-commons.yml" - # All packages under test - - "packages/@cdktf/commons/**" - # All scripts we use - - "tools/build-unit-test-matrix.sh" - - "tools/align-version.sh" - -jobs: - unit_test: - uses: ./.github/workflows/unit.yml - strategy: - fail-fast: false - matrix: - terraform_version: ["1.2.8"] - with: - concurrency_group_prefix: pr-cdktf-commons - package: "@cdktf/commons" - terraform_version: ${{ matrix.terraform_version }} - secrets: inherit diff --git a/.github/workflows/unit-@cdktf-hcl2cdk.yml b/.github/workflows/unit-@cdktf-hcl2cdk.yml deleted file mode 100644 index 60d76aafb1..0000000000 --- a/.github/workflows/unit-@cdktf-hcl2cdk.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Unit Tests - @cdktf/hcl2cdk -on: - pull_request: - paths: - # This workflow - - ".github/workflows/unit-@cdktf-hcl2cdk.yml" - # All packages under test - - "packages/@cdktf/hcl2cdk/**" - # All scripts we use - - "tools/build-unit-test-matrix.sh" - - "tools/align-version.sh" - -jobs: - unit_test: - uses: ./.github/workflows/unit.yml - strategy: - fail-fast: false - matrix: - terraform_version: ["1.2.8"] - with: - concurrency_group_prefix: pr-cdktf-hcl2cdk - package: "@cdktf/hcl2cdk" - terraform_version: ${{ matrix.terraform_version }} - secrets: inherit diff --git a/.github/workflows/unit-@cdktf-hcl2json.yml b/.github/workflows/unit-@cdktf-hcl2json.yml deleted file mode 100644 index 4510a2d336..0000000000 --- a/.github/workflows/unit-@cdktf-hcl2json.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Unit Tests - @cdktf/hcl2json -on: - pull_request: - paths: - # This workflow - - ".github/workflows/unit-@cdktf-hcl2json.yml" - # All packages under test - - "packages/@cdktf/hcl2json/**" - # All scripts we use - - "tools/build-unit-test-matrix.sh" - - "tools/align-version.sh" - -jobs: - unit_test: - uses: ./.github/workflows/unit.yml - strategy: - fail-fast: false - matrix: - terraform_version: ["1.2.8"] - with: - concurrency_group_prefix: pr-cdktf-hcl2json - package: "@cdktf/hcl2json" - terraform_version: ${{ matrix.terraform_version }} - secrets: inherit diff --git a/.github/workflows/unit-@cdktf-provider-generator.yml b/.github/workflows/unit-@cdktf-provider-generator.yml deleted file mode 100644 index aa75804485..0000000000 --- a/.github/workflows/unit-@cdktf-provider-generator.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Unit Tests - @cdktf/provider-generator -on: - pull_request: - paths: - # This workflow - - ".github/workflows/unit-@cdktf-provider-gener@cdktf/provider-generator.yml" - # All packages under test - - "packages/@cdktf/provider-generator/**" - # All scripts we use - - "tools/build-unit-test-matrix.sh" - - "tools/align-version.sh" - -jobs: - unit_test: - uses: ./.github/workflows/unit.yml - strategy: - fail-fast: false - matrix: - terraform_version: ["1.2.8"] - with: - concurrency_group_prefix: pr-cdktf-provider-generator - package: "@cdktf/provider-generator" - terraform_version: ${{ matrix.terraform_version }} - secrets: inherit diff --git a/.github/workflows/unit-all.yml b/.github/workflows/unit-all.yml index e8a49350f9..b979815d28 100644 --- a/.github/workflows/unit-all.yml +++ b/.github/workflows/unit-all.yml @@ -10,8 +10,8 @@ on: - reopened jobs: - unit_test_for_prs: - if: contains(github.event.pull_request.labels.*.name, 'ci/run-unit') || contains(github.event.pull_request.labels.*.name, 'ci/run-all') + all_unit_tests: + if: ${{ contains(github.event.pull_request.labels.*.name, 'ci/run-unit') || contains(github.event.pull_request.labels.*.name, 'ci/run-all') }} uses: ./.github/workflows/unit.yml strategy: fail-fast: false @@ -32,3 +32,94 @@ jobs: package: ${{ matrix.package }} terraform_version: ${{ matrix.terraform_version }} secrets: inherit + + cdktf_cli_core: + if: ${{ contains(github.event.pull_request.labels.*.name, 'ci/run-unit/@cdktf/cli-core') }} + uses: ./.github/workflows/unit.yml + strategy: + fail-fast: false + matrix: + terraform_version: ["1.2.8"] + with: + concurrency_group_prefix: pr-cdktf-cli-core + package: "@cdktf/cli-core" + terraform_version: ${{ matrix.terraform_version }} + secrets: inherit + + cdktf_commons: + if: ${{ contains(github.event.pull_request.labels.*.name, 'ci/run-unit/@cdktf/commons') }} + uses: ./.github/workflows/unit.yml + strategy: + fail-fast: false + matrix: + terraform_version: ["1.2.8"] + with: + concurrency_group_prefix: pr-cdktf-commons + package: "@cdktf/commons" + terraform_version: ${{ matrix.terraform_version }} + secrets: inherit + + cdktf_hcl2cdk: + if: ${{ contains(github.event.pull_request.labels.*.name, 'ci/run-unit/@cdktf/hcl2cdk') }} + uses: ./.github/workflows/unit.yml + strategy: + fail-fast: false + matrix: + terraform_version: ["1.2.8"] + with: + concurrency_group_prefix: pr-cdktf-hcl2cdk + package: "@cdktf/hcl2cdk" + terraform_version: ${{ matrix.terraform_version }} + secrets: inherit + + cdktf_hcl2json: + if: ${{ contains(github.event.pull_request.labels.*.name, 'ci/run-unit/@cdktf/hcl2json') }} + uses: ./.github/workflows/unit.yml + strategy: + fail-fast: false + matrix: + terraform_version: ["1.2.8"] + with: + concurrency_group_prefix: pr-cdktf-hcl2json + package: "@cdktf/hcl2json" + terraform_version: ${{ matrix.terraform_version }} + secrets: inherit + + cdktf_provider_generator: + if: ${{ contains(github.event.pull_request.labels.*.name, 'ci/run-unit/@cdktf/provider-generator') }} + uses: ./.github/workflows/unit.yml + strategy: + fail-fast: false + matrix: + terraform_version: ["1.2.8"] + with: + concurrency_group_prefix: pr-cdktf-provider-generator + package: "@cdktf/provider-generator" + terraform_version: ${{ matrix.terraform_version }} + secrets: inherit + + cdktf_cli: + if: ${{ contains(github.event.pull_request.labels.*.name, 'ci/run-unit/cdktf-cli') }} + uses: ./.github/workflows/unit.yml + strategy: + fail-fast: false + matrix: + terraform_version: ["1.2.8"] + with: + concurrency_group_prefix: pr-cdktf-cli + package: "cdktf-cli" + terraform_version: ${{ matrix.terraform_version }} + secrets: inherit + + cdktf: + if: ${{ contains(github.event.pull_request.labels.*.name, 'ci/run-unit/cdktf') }} + uses: ./.github/workflows/unit.yml + strategy: + fail-fast: false + matrix: + terraform_version: ["1.2.8"] + with: + concurrency_group_prefix: pr-cdktf + package: "cdktf" + terraform_version: ${{ matrix.terraform_version }} + secrets: inherit diff --git a/.github/workflows/unit-cdktf-cli.yml b/.github/workflows/unit-cdktf-cli.yml deleted file mode 100644 index 99d2f0b742..0000000000 --- a/.github/workflows/unit-cdktf-cli.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Unit Tests - cdktf-cli -on: - pull_request: - paths: - # This workflow - - ".github/workflows/unit-cdktf-cli.yml" - # All packages under test - - "packages/cdktf-cli/**" - # All scripts we use - - "tools/build-unit-test-matrix.sh" - - "tools/align-version.sh" - -jobs: - unit_test: - uses: ./.github/workflows/unit.yml - strategy: - fail-fast: false - matrix: - terraform_version: ["1.2.8"] - with: - concurrency_group_prefix: pr-cdktf-cli - package: "cdktf-cli" - terraform_version: ${{ matrix.terraform_version }} - secrets: inherit diff --git a/.github/workflows/unit-cdktf.yml b/.github/workflows/unit-cdktf.yml deleted file mode 100644 index 516b562807..0000000000 --- a/.github/workflows/unit-cdktf.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Unit Tests - cdktf -on: - pull_request: - paths: - # This workflow - - ".github/workflows/unit-cdktf.yml" - # All packages under test - - "packages/cdktf/**" - # All scripts we use - - "tools/build-unit-test-matrix.sh" - - "tools/align-version.sh" - -jobs: - unit_test: - uses: ./.github/workflows/unit.yml - strategy: - fail-fast: false - matrix: - terraform_version: ["1.2.8"] - with: - concurrency_group_prefix: pr-cdktf - package: "cdktf" - terraform_version: ${{ matrix.terraform_version }} - secrets: inherit diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index 5f082a551b..ec6179466d 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -20,9 +20,6 @@ concurrency: jobs: unit-test: runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: ${{fromJSON(needs.build-test-matrix.outputs.tests)}} container: image: docker.mirror.hashicorp.services/hashicorp/jsii-terraform env: @@ -34,6 +31,10 @@ jobs: - name: Get yarn cache directory path id: global-cache-dir-path run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT + - name: ensure all plugin directories exist + run: | + mkdir -p ${{ steps.global-cache-dir-path.outputs.dir }}/terraform-plugins + mkdir -p ${{ steps.global-cache-dir-path.outputs.dir }}/go-cache - uses: actions/cache@v3 id: global-cache # use this to check for `cache-hit` (`steps.global-cache.outputs.cache-hit != 'true'`) with: diff --git a/examples/csharp/documentation/MyTerraformStack.csproj b/examples/csharp/documentation/MyTerraformStack.csproj index 6932f8906c..535a47875f 100644 --- a/examples/csharp/documentation/MyTerraformStack.csproj +++ b/examples/csharp/documentation/MyTerraformStack.csproj @@ -2,18 +2,13 @@ Exe - netcoreapp5.0 - 1 + netcoreapp3.1 - - - - diff --git a/packages/@cdktf/cli-core/src/test/lib/cdktf-project.test.ts b/packages/@cdktf/cli-core/src/test/lib/cdktf-project.test.ts index 0a6ee32a91..bb8b869491 100644 --- a/packages/@cdktf/cli-core/src/test/lib/cdktf-project.test.ts +++ b/packages/@cdktf/cli-core/src/test/lib/cdktf-project.test.ts @@ -49,7 +49,7 @@ describe("CdktfProject", () => { Name: "cdktf-api-test", }, sendCrashReports: false, - dist: path.join(__dirname, "../../../../../dist"), + dist: path.join(__dirname, "../../../../../../dist"), }); fs.copyFileSync( diff --git a/packages/@cdktf/cli-core/src/test/lib/dependencies/prebuilt-providers.test.ts b/packages/@cdktf/cli-core/src/test/lib/dependencies/prebuilt-providers.test.ts index 6684c4f49f..6f9cfb49be 100644 --- a/packages/@cdktf/cli-core/src/test/lib/dependencies/prebuilt-providers.test.ts +++ b/packages/@cdktf/cli-core/src/test/lib/dependencies/prebuilt-providers.test.ts @@ -9,10 +9,6 @@ import { getPrebuiltProviderRepositoryName, resetFetchCache, } from "../../../lib/dependencies/prebuilt-providers"; -import "../../../lib/logging"; - -// Prevent logging outputs from polluting the test results -jest.mock("../../../lib/logging"); function buildNpmResponse( version = "0.0.0", @@ -44,11 +40,15 @@ function buildNpmResponse( } describe("prebuilt-providers", () => { + const initialLogLevel = process.env.CDKTF_LOG_LEVEL; beforeAll(() => { + // Prevent logging outputs from polluting the test results + process.env.CDKTF_LOG_LEVEL = "error"; nock.disableNetConnect(); }); afterAll(() => { + process.env.CDKTF_LOG_LEVEL = initialLogLevel; nock.cleanAll(); nock.enableNetConnect(); }); diff --git a/packages/@cdktf/cli-core/src/test/lib/terraform-parallelism.test.ts b/packages/@cdktf/cli-core/src/test/lib/terraform-parallelism.test.ts index 6f2cf929ac..f0197e6a70 100644 --- a/packages/@cdktf/cli-core/src/test/lib/terraform-parallelism.test.ts +++ b/packages/@cdktf/cli-core/src/test/lib/terraform-parallelism.test.ts @@ -4,8 +4,8 @@ import os from "os"; import { CdktfProject, init, get } from "../../lib/index"; import { exec, Language } from "@cdktf/commons"; -jest.mock("../../lib/util", () => { - const originalModule = jest.requireActual("../../lib/util"); +jest.mock("@cdktf/commons", () => { + const originalModule = jest.requireActual("@cdktf/commons"); return { __esmodule: true, @@ -58,7 +58,7 @@ describe("terraform parallelism", () => { Name: "cdktf-api-test", }, sendCrashReports: false, - dist: path.join(__dirname, "../../../../../dist"), + dist: path.join(__dirname, "../../../../../../dist"), }); fs.copyFileSync( diff --git a/packages/@cdktf/cli-core/src/test/models/terraform-cloud.test.ts b/packages/@cdktf/cli-core/src/test/models/terraform-cloud.test.ts index 86a57526aa..85a8601a29 100644 --- a/packages/@cdktf/cli-core/src/test/models/terraform-cloud.test.ts +++ b/packages/@cdktf/cli-core/src/test/models/terraform-cloud.test.ts @@ -3,7 +3,7 @@ import { logger } from "@cdktf/commons"; import { logBetterErrorAndThrow } from "../../lib/models/terraform-cloud"; -jest.mock("../../lib/logging"); +jest.mock("@cdktf/commons"); describe("BeautifyErrors", () => { afterEach(() => { diff --git a/packages/@cdktf/commons/src/config.test.ts b/packages/@cdktf/commons/src/config.test.ts index 24ae2c51f1..4bfd9c133f 100644 --- a/packages/@cdktf/commons/src/config.test.ts +++ b/packages/@cdktf/commons/src/config.test.ts @@ -131,7 +131,7 @@ describe("parseConfig", () => { }; const parsed: any = parseConfig(JSON.stringify(input)); expect(parsed.terraformModules[0].localSource).toMatch( - "/packages/@cdktf/provider-generator/foo" + "/packages/@cdktf/commons/foo" ); }); @@ -232,7 +232,7 @@ describe("parseConfig", () => { const parsed: any = parseConfig(JSON.stringify(input)); expect(parsed.terraformModules[0].localSource).toMatch( - "/packages/@cdktf/provider-generator/consul" + "/packages/@cdktf/commons/consul" ); expect(parsed.terraformModules[0].name).toMatch("consul");