From b08afb4deff4f3c9673dccd02dc752bcd3ea8962 Mon Sep 17 00:00:00 2001 From: Alex Maras <dev@alexmaras.com> Date: Tue, 22 Apr 2025 13:01:15 +0800 Subject: [PATCH] test: upload artifacts using zip --- tests/iac-upload-artifacts/backend.tf | 3 +++ tests/iac-upload-artifacts/main.tf | 9 ++++++++ .../UploadArtifacts.gitlab-ci.yml | 22 +++++++++++++++++++ tests/integration.gitlab-ci.yml | 17 ++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 tests/iac-upload-artifacts/backend.tf create mode 100644 tests/iac-upload-artifacts/main.tf create mode 100644 tests/integration-tests/UploadArtifacts.gitlab-ci.yml diff --git a/tests/iac-upload-artifacts/backend.tf b/tests/iac-upload-artifacts/backend.tf new file mode 100644 index 0000000..1736bf1 --- /dev/null +++ b/tests/iac-upload-artifacts/backend.tf @@ -0,0 +1,3 @@ +terraform { + backend "http" {} +} diff --git a/tests/iac-upload-artifacts/main.tf b/tests/iac-upload-artifacts/main.tf new file mode 100644 index 0000000..45bff9e --- /dev/null +++ b/tests/iac-upload-artifacts/main.tf @@ -0,0 +1,9 @@ +data "archive_file" "test_artifact" { + type = "zip" + output_path = "test-artifact.zip" + + source { + content = "test artifact inner value" + filename = "file-inside-archive.txt" + } +} diff --git a/tests/integration-tests/UploadArtifacts.gitlab-ci.yml b/tests/integration-tests/UploadArtifacts.gitlab-ci.yml new file mode 100644 index 0000000..ce33dd7 --- /dev/null +++ b/tests/integration-tests/UploadArtifacts.gitlab-ci.yml @@ -0,0 +1,22 @@ +include: + - component: $CI_SERVER_FQDN/$CI_PROJECT_PATH/validate-plan-apply@$CI_COMMIT_SHA + inputs: + image_registry_base: $GITLAB_OPENTOFU_IMAGE_BASE + version: $CI_COMMIT_SHA + base_os: $GITLAB_OPENTOFU_BASE_IMAGE_OS + opentofu_version: $OPENTOFU_VERSION + root_dir: $TEST_GITLAB_TOFU_ROOT_DIR + state_name: $TEST_GITLAB_TOFU_STATE_NAME + fmt_rules: [{when: on_success}] + validate_rules: [{when: on_success}] + plan_rules: [{when: on_success}] + apply_rules: [{when: on_success}] + + # For CI Terraform state cleanup + - component: $CI_SERVER_FQDN/$CI_PROJECT_PATH/delete-state@$CI_COMMIT_SHA + inputs: + stage: cleanup + state_name: $TEST_GITLAB_TOFU_STATE_NAME + rules: [{when: always}] + +stages: [validate, build, deploy, cleanup] diff --git a/tests/integration.gitlab-ci.yml b/tests/integration.gitlab-ci.yml index ba4337e..1c40eba 100644 --- a/tests/integration.gitlab-ci.yml +++ b/tests/integration.gitlab-ci.yml @@ -194,3 +194,20 @@ id-tokens: - alpine - debian +upload-artifacts: + stage: test-integration + variables: + OPENTOFU_VERSION: $LATEST_OPENTOFU_VERSION + TEST_GITLAB_TOFU_STATE_NAME: ci-integration-$CI_JOB_NAME_SLUG-$CI_PIPELINE_IID-$CI_NODE_INDEX + TEST_GITLAB_TOFU_ROOT_DIR: tests/iac-upload-artifacts + trigger: + include: tests/integration-tests/$PIPELINE_NAME.gitlab-ci.yml + strategy: depend + parallel: + matrix: + - PIPELINE_NAME: + - UploadArtifacts + GITLAB_OPENTOFU_BASE_IMAGE_OS: + - alpine + - debian + -- GitLab