From 62d475bb0a535012b794d58402d42da3bc895ae9 Mon Sep 17 00:00:00 2001 From: Florian Lemaitre Date: Sat, 25 May 2024 15:39:04 +0200 Subject: [PATCH] Test examples in pipeline --- .github/workflows/test.yml | 22 ++++++++++++++++++- examples/terraform-provider-null/terraform.d | 1 + .../0.1.0/linux_amd64/terraform-provider-null | 1 - terraform.d/bin | 1 + .../darwin_amd64/terraform-provider-null | 1 + .../darwin_arm64/terraform-provider-null | 1 + .../0.1.0/linux_amd64/terraform-provider-null | 1 + .../windows_amd64/terraform-provider-null.exe | 1 + 8 files changed, 27 insertions(+), 2 deletions(-) create mode 120000 examples/terraform-provider-null/terraform.d delete mode 120000 examples/terraform-provider-null/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/linux_amd64/terraform-provider-null create mode 120000 terraform.d/bin create mode 120000 terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/darwin_amd64/terraform-provider-null create mode 120000 terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/darwin_arm64/terraform-provider-null create mode 120000 terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/linux_amd64/terraform-provider-null create mode 120000 terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/windows_amd64/terraform-provider-null.exe diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fdc161e..bec5a85 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -61,7 +61,7 @@ jobs: #- { platform: sparc64-unknown-linux-gnu, os: linux, runner: ubuntu-latest, run: true } # Incompatible Ring: unknown Arch # MacOS - - { platform: aarch64-apple-darwin, os: darwin, runner: macos-latest, run: false } + - { platform: aarch64-apple-darwin, os: darwin, runner: macos-latest, run: true } - { platform: x86_64-apple-darwin, os: darwin, runner: macos-latest, run: true } # Windows @@ -97,6 +97,9 @@ jobs: uses: taiki-e/setup-cross-toolchain-action@v1 with: target: ${{ matrix.target.platform }} + - name: Install terraform + if: matrix.target.run + uses: hashicorp/setup-terraform@v3 - name: Setup Cache uses: Swatinem/rust-cache@v2.7.3 with: @@ -104,6 +107,9 @@ jobs: - name: Build run: | cargo build --all --locked + - name: Build Examples + run: | + cargo build --examples --locked - name: Test if: matrix.target.run run: | @@ -116,6 +122,20 @@ jobs: if: contains(matrix.toolchain, 'nightly') run: | cargo miri test --all --locked + - name: Test Examples + if: matrix.target.run + shell: bash + run: | + rm terraform.d/bin + ln -s ../target/${{ matrix.target.platform }}/debug/examples terraform.d/bin + for d in examples/*/; do + ( + cd "$d" + terraform init + terraform apply -auto-approve + terraform destroy -auto-approve + ) + done - name: Format run: | cargo fmt --all --check diff --git a/examples/terraform-provider-null/terraform.d b/examples/terraform-provider-null/terraform.d new file mode 120000 index 0000000..a1f7d0d --- /dev/null +++ b/examples/terraform-provider-null/terraform.d @@ -0,0 +1 @@ +../../terraform.d \ No newline at end of file diff --git a/examples/terraform-provider-null/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/linux_amd64/terraform-provider-null b/examples/terraform-provider-null/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/linux_amd64/terraform-provider-null deleted file mode 120000 index da3e3e4..0000000 --- a/examples/terraform-provider-null/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/linux_amd64/terraform-provider-null +++ /dev/null @@ -1 +0,0 @@ -../../../../../../../../../target/debug/examples/terraform-provider-null \ No newline at end of file diff --git a/terraform.d/bin b/terraform.d/bin new file mode 120000 index 0000000..f124444 --- /dev/null +++ b/terraform.d/bin @@ -0,0 +1 @@ +../target/debug/examples \ No newline at end of file diff --git a/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/darwin_amd64/terraform-provider-null b/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/darwin_amd64/terraform-provider-null new file mode 120000 index 0000000..d4e1c6d --- /dev/null +++ b/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/darwin_amd64/terraform-provider-null @@ -0,0 +1 @@ +../../../../../../bin/terraform-provider-null \ No newline at end of file diff --git a/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/darwin_arm64/terraform-provider-null b/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/darwin_arm64/terraform-provider-null new file mode 120000 index 0000000..d4e1c6d --- /dev/null +++ b/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/darwin_arm64/terraform-provider-null @@ -0,0 +1 @@ +../../../../../../bin/terraform-provider-null \ No newline at end of file diff --git a/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/linux_amd64/terraform-provider-null b/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/linux_amd64/terraform-provider-null new file mode 120000 index 0000000..d4e1c6d --- /dev/null +++ b/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/linux_amd64/terraform-provider-null @@ -0,0 +1 @@ +../../../../../../bin/terraform-provider-null \ No newline at end of file diff --git a/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/windows_amd64/terraform-provider-null.exe b/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/windows_amd64/terraform-provider-null.exe new file mode 120000 index 0000000..613964c --- /dev/null +++ b/terraform.d/plugins/localhost/aneoconsulting/null/0.1.0/windows_amd64/terraform-provider-null.exe @@ -0,0 +1 @@ +../../../../../../bin/terraform-provider-null.exe \ No newline at end of file