114 lines
4 KiB
YAML
114 lines
4 KiB
YAML
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 }}
|