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");