name: Acceptance Testing description: "Acceptance Testing pipeline" inputs: go-version: description: "go version to install" default: '1.25' required: true project_id: description: "STACKIT project ID for tests" required: true region: description: "STACKIT region for tests" default: 'eu01' required: true service_account_json: description: "STACKIT service account JSON file contents" required: true test_file: description: "testfile to run" default: '' outputs: random-number: description: "Random number" value: ${{ steps.random-number-generator.outputs.random-number }} runs: using: "composite" steps: - name: Random Number Generator id: random-number-generator run: echo "random-number=$(echo $RANDOM)" >> $GITHUB_OUTPUT shell: bash - name: Install needed tools shell: bash run: | set -e apt-get -y -qq update apt-get -y -qq install jq python3 python3-pip python-is-python3 s3cmd git make wget - name: Setup JAVA uses: actions/setup-java@v5 with: distribution: 'temurin' # See 'Supported distributions' for available options java-version: '21' - name: Install Go ${{ inputs.go-version }} uses: actions/setup-go@v6 with: # go-version: ${{ env.GO_VERSION }} go-version-file: 'go.mod' cache-dependency-path: "**/*.sum" - name: Install go tools shell: bash run: | set -e go mod download go install golang.org/x/tools/cmd/goimports@latest go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.7.2 go install github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs@v0.24.0 - name: Prepare pkg_gen directory shell: bash run: | go run cmd/main.go build -p - name: Run acceptance test file if: ${{ inputs.test_file != '' }} shell: bash run: | echo "Running acceptance tests for the terraform provider" echo "${STACKIT_SERVICE_ACCOUNT_JSON}" > ~/.service_account.json cd stackit TF_ACC=1 \ TF_ACC_PROJECT_ID=${TF_ACC_PROJECT_ID} \ TF_ACC_REGION=${TF_ACC_REGION} \ go test ${{ inputs.test_file }} -count=1 -timeout=30m env: STACKIT_SERVICE_ACCOUNT_JSON: ${{ inputs.service_account_json }} TF_PROJECT_ID: ${{ inputs.project_id }} TF_ACC_REGION: ${{ inputs.region }} # TF_ACC_TEST_PROJECT_SERVICE_ACCOUNT_EMAIL: ${{ secrets.TF_ACC_TEST_PROJECT_SERVICE_ACCOUNT_EMAIL }} # TF_ACC_TEST_PROJECT_SERVICE_ACCOUNT_TOKEN: ${{ secrets.TF_ACC_TEST_PROJECT_SERVICE_ACCOUNT_TOKEN }} # TF_ACC_TEST_PROJECT_PARENT_CONTAINER_ID: ${{ secrets.TF_ACC_TEST_PROJECT_PARENT_CONTAINER_ID }} # TF_ACC_TEST_PROJECT_PARENT_UUID: ${{ secrets.TF_ACC_TEST_PROJECT_PARENT_UUID }} # TF_ACC_TEST_PROJECT_USER_EMAIL: ${{ secrets.TF_ACC_TEST_PROJECT_USER_EMAIL }} - name: Run acceptance tests if: ${{ inputs.test_file == '' }} shell: bash run: | echo "Running acceptance tests for the terraform provider" echo "${STACKIT_SERVICE_ACCOUNT_JSON}" > ~/.service_account.json cd stackit TF_ACC=1 \ TF_ACC_PROJECT_ID=${TF_ACC_PROJECT_ID} \ TF_ACC_REGION=${TF_ACC_REGION} \ go test ./... -count=1 -timeout=30m env: STACKIT_SERVICE_ACCOUNT_JSON: ${{ inputs.service_account_json }} TF_PROJECT_ID: ${{ inputs.project_id }} TF_ACC_REGION: ${{ inputs.region }} # TF_ACC_TEST_PROJECT_SERVICE_ACCOUNT_EMAIL: ${{ secrets.TF_ACC_TEST_PROJECT_SERVICE_ACCOUNT_EMAIL }} # TF_ACC_TEST_PROJECT_SERVICE_ACCOUNT_TOKEN: ${{ secrets.TF_ACC_TEST_PROJECT_SERVICE_ACCOUNT_TOKEN }} # TF_ACC_TEST_PROJECT_PARENT_CONTAINER_ID: ${{ secrets.TF_ACC_TEST_PROJECT_PARENT_CONTAINER_ID }} # TF_ACC_TEST_PROJECT_PARENT_UUID: ${{ secrets.TF_ACC_TEST_PROJECT_PARENT_UUID }} # TF_ACC_TEST_PROJECT_USER_EMAIL: ${{ secrets.TF_ACC_TEST_PROJECT_USER_EMAIL }}