Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Terraform Tests

Terraform Tests #273

Workflow file for this run

on:
schedule:
-cron:'0 19 * * 6'
workflow_dispatch:
inputs:
services:
type:string
required:false
default:'ls-all'
description:name of the service to execute tests for (e.g. "ls-community", "ls-pro", "ls-all", "s3,iam,ec2")
enable-pro:
type:string
required:false
default:'true'
description:determine if pro capabilities should be enabled
tinybird-reporting:
type:string
required:false
default:'false'
description:determine whether results should be reported to tinybird
name:Terraform Tests
jobs:
prepare_list:
runs-on:ubuntu-latest
steps:
-uses:actions/checkout@v3
with:
submodules:'true'
-id:set-matrix
run:echo "matrix=$(python -m terraform_pytest.get_services ${{ github.event.inputs.services || 'ls-all' }})" >> $GITHUB_OUTPUT
outputs:
matrix:${{ steps.set-matrix.outputs.matrix }}
test_service:
needs:prepare_list
strategy:
max-parallel:10
fail-fast:false
matrix:
service_partition:${{ fromJson(needs.prepare_list.outputs.matrix) }}
runs-on:ubuntu-latest
steps:
-uses:actions/checkout@v3
with:
submodules:'true'
-uses:actions/setup-go@v3
with:
go-version:'1.20.x'
cache:true
cache-dependency-path:terraform-provider-aws/go.sum
-uses:actions/checkout@v3
if:${{ (github.event.inputs.tinybird-reporting || 'true') == 'true' }}
with:
repository:tinybirdco/pytest-tinybird
path:pytest-tinybird
-name:Set up Python 3.10.5
uses:actions/setup-python@v4
with:
python-version:'3.10.5'
cache:'pip'
-name:Install system dependencies
run:|
python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
-name:Apply Terraform Plugin Sdk Patch
run:|
cd terraform-provider-aws
sdk_version=$(go list -m github.com/hashicorp/terraform-plugin-sdk/v2 | sed -n -e 's/^.* //p')
go mod edit --replace github.com/hashicorp/terraform-plugin-sdk/v2=github.com/localstack/terraform-plugin-sdk/v2@${sdk_version}
go mod tidy
-name:Patch Terraform Provider
run:|
source .venv/bin/activate
cd terraform-provider-aws && go mod vendor
cd ../
python -m terraform_pytest.main patch
-name:Build ${{ matrix.service_partition.service }} Binary
run:|
source .venv/bin/activate
python -m terraform_pytest.main build -s ${{ matrix.service_partition.service }}
ls -la ./test-bin
-name:Setup tinybird plugin
if:${{ (github.event.inputs.tinybird-reporting || 'true') == 'true' }}
run:|
source .venv/bin/activate
cd pytest-tinybird
python setup.py install
-name:Setup LocalStack
env:
LOCALSTACK_AUTH_TOKEN:${{ secrets.LOCALSTACK_AUTH_TOKEN }}
TMP_USER:${{ secrets.TMP_USER }}
TMP_PW:${{ secrets.TMP_PW }}
run:|
source .venv/bin/activate
pip install --pre localstack
enable_pro=${{ inputs.enable-pro || 'true' }}
if [[ $enable_pro != 'true' ]]
then
docker pull localstack/localstack
else
docker pull localstack/localstack-pro
localstack auth login -u $TMP_USER -p $TMP_PW # login is currently required
localstack extensions init
localstack extensions install "git+https://github.com/localstack/localstack-moto-test-coverage/#egg=collect-raw-metric-data-extension&subdirectory=collect-raw-metric-data-extension"
fi
-name:Run ${{ matrix.service_partition.service }} - ${{ matrix.service_partition.partition }} Tests
env:
SERVICE:${{ matrix.service_partition.service }}
PARTITION:${{ matrix.service_partition.partition }}
TINYBIRD_URL:https://api.tinybird.co
TINYBIRD_DATASOURCE:localstack_terraform_test_results
TINYBIRD_TOKEN:${{ secrets.TINYBIRD_TOKEN }}
CI_COMMIT_SHA:${{ github.sha }}
CI_JOB_ID:${{ github.job }}
CI_JOB_URL:${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
CI_JOB_NAME:${{ github.job }}-${{ matrix.service_partition.service }}-${{ matrix.service_partition.partition }}
run:|
source .venv/bin/activate
enable_pro=${{ inputs.enable-pro || 'true' }}
enable_tinybird=${{ inputs.tinybird-reporting || 'true' }}
if [[ $enable_pro == 'true' ]]
then
export LOCALSTACK_AUTH_TOKEN=${{ secrets.LOCALSTACK_AUTH_TOKEN }}
fi
if [[ $enable_tinybird == 'true' ]]
then
options="-s -v --ls-start --gather-metrics --report-to-tinybird"
else
options="-s -v --ls-start --gather-metrics"
fi
if [[ ${{ matrix.service_partition.service }} == "lambda" ]]
then
make prepare-lambda
fi
if [[ ${{ matrix.service_partition.partition }} == "All" ]]
then
python -m pytest --junitxml=target/reports/pytest.xml terraform-provider-aws/internal/service/${{ matrix.service_partition.service }} $options
else
python -m pytest --junitxml=target/reports/pytest.xml $(python terraform_pytest/get_tf_partitions.py ${{ matrix.service_partition.service }} ${{ matrix.service_partition.partition }} ) $options
fi
-name:Archive Test Result
uses:actions/upload-artifact@v4
if:always()
with:
name:test-metrics-${{ matrix.service_partition.service }}-${{ matrix.service_partition.partition }}
path:target/reports
-name:Publish ${{ matrix.service }} Test Results
uses:EnricoMi/publish-unit-test-result-action@v2
if:always()
with:
junit_files:target/reports/*.xml
check_name:${{ matrix.service }} Terraform Test Results
merge_artifacts:
needs:test_service
if:always()
runs-on:ubuntu-latest
steps:
-uses:actions/upload-artifact/merge@v4
with:
name:test-metrics
pattern:test-metrics-*
separate-directories:false
delete-merged:true

[8]ページ先頭

©2009-2025 Movatter.jp