Skip to content

testing

testing #1

Workflow file for this run

name: integration
concurrency:
group: community-aws-integration-${{ github.sha }}
cancel-in-progress: true
on:
pull_request_target:
env:
AMAZON_PATH: "./amazon"
COMMUNITY_PATH: "./community"
jobs:
splitter:
runs-on: ubuntu-latest
outputs:
test_targets: ${{ steps.display.outputs.test_targets }}
steps:
- name: Checkout repository
uses: ansible-network/github_actions/.github/actions/checkout_dependency@main
with:
path: ${{ env.COMMUNITY_PATH }}
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: "0"
- name: Checkout dependency (amazon.aws)
uses: ansible-network/github_actions/.github/actions/checkout_dependency@main
with:
repository: ansible-collections/amazon.aws
path: ${{ env.AMAZON_PATH }}
ref: ${{ github.event.pull_request.base.ref }}
fetch-depth: "0"
- name: list changes for pull request
id: splitter
uses: ansible-network/github_actions/.github/actions/ansible_test_splitter@main
with:
total_jobs: 22
collections_to_test: |
${{ env.AMAZON_PATH }}
${{ env.COMMUNITY_PATH }}
- name: display targets
id: display
run: echo "test_targets=${{ steps.splitter.outputs.test_targets }}" >> $GITHUB_OUTPUT
shell: bash
integration:
needs:
- splitter
env:
test_targets: ${{ needs.splitter.outputs.test_targets }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ansible-version:
- milestone
python-version:
- "3.9"
collection:
- amazon.aws
- community.aws
workflow-id: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22']
name: "integration-${{ matrix.collection }}-py${{ matrix.python-version }}-${{ matrix.ansible-version }}-${{ matrix.workflow-id }}"
steps:
- name: Read ansible-test targets
id: read-targets
run: |
python -c "import os; splitter_d={x.split(':', maxsplit=1)[0]:x.split(':', maxsplit=1)[1] for x in os.environ.get('TEST_TARGETS').split(';')}; context=os.environ.get('TEST_CONTEXT'); result=splitter_d.get(context); result and print(f'ansible_test_targets={result}')" >> $GITHUB_OUTPUT
shell: bash
env:
TEST_CONTEXT: "${{ matrix.collection }}-${{ matrix.workflow-id }}"
TEST_TARGETS: "${{ env.test_targets }}"
- name: Install ansible-core (${{ matrix.ansible-version }})
run: python3 -m pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible-version }}.tar.gz --disable-pip-version-check
if: steps.read-targets.outputs.ansible_test_targets != ''
# install community.aws collection
- name: Checkout the collection repository
uses: ansible-network/github_actions/.github/actions/checkout_dependency@main
with:
path: ${{ env.COMMUNITY_PATH }}
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: "0"
if: steps.read-targets.outputs.ansible_test_targets != ''
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
if: steps.read-targets.outputs.ansible_test_targets != ''
- name: Pre install collections dependencies first so the collection install does not
run: ansible-galaxy collection install --pre true -p /home/runner/collections/
if: steps.read-targets.outputs.ansible_test_targets != ''
- name: Read collection metadata from galaxy.yml
id: identify
uses: ansible-network/github_actions/.github/actions/identify_collection@main
with:
source_path: ${{ env.COMMUNITY_PATH }}
if: steps.read-targets.outputs.ansible_test_targets != ''
- name: Build and install the collection
uses: ansible-network/github_actions/.github/actions/build_install_collection@main
with:
install_python_dependencies: true
source_path: ${{ env.COMMUNITY_PATH }}
collection_path: ${{ steps.identify.outputs.collection_path }}
tar_file: ${{ steps.identify.outputs.tar_file }}
ansible_version: ${{ matrix.ansible-version }}
if: steps.read-targets.outputs.ansible_test_targets != ''
# install amazon.aws collection
- name: Checkout the collection repository
uses: ansible-network/github_actions/.github/actions/checkout_dependency@main
with:
repository: ansible-collections/amazon.aws
path: ${{ env.AMAZON_PATH }}
ref: ${{ github.event.pull_request.base.ref }}
fetch-depth: "0"
if: steps.read-targets.outputs.ansible_test_targets != ''
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
if: steps.read-targets.outputs.ansible_test_targets != ''
- name: Pre install collections dependencies first so the collection install does not
run: ansible-galaxy collection install --pre true -p /home/runner/collections/
if: steps.read-targets.outputs.ansible_test_targets != ''
- name: Read collection metadata from galaxy.yml
id: identify

Check failure on line 137 in .github/workflows/integration.yaml

View workflow run for this annotation

GitHub Actions / integration

Invalid workflow file

The workflow is not valid. .github/workflows/integration.yaml (Line: 137, Col: 13): The identifier 'identify' may not be used more than once within the same scope.
uses: ansible-network/github_actions/.github/actions/identify_collection@main
with:
source_path: ${{ env.AMAZON_PATH }}
if: steps.read-targets.outputs.ansible_test_targets != ''
- name: Build and install the collection
uses: ansible-network/github_actions/.github/actions/build_install_collection@main
with:
install_python_dependencies: true
source_path: ${{ env.AMAZON_PATH }}
collection_path: ${{ steps.identify.outputs.collection_path }}
tar_file: ${{ steps.identify.outputs.tar_file }}
ansible_version: ${{ matrix.ansible-version }}
if: steps.read-targets.outputs.ansible_test_targets != ''
- name: Determines path to the collection being tested
id: collection-path
run: |
if [ "${COLLECTION_TO_TEST}" == "amazon.aws" ]; then
echo "path=${AMAZON_COLLECTION_PATH}" >> $GITHUB_OUTPUT
else
echo "path=${COMMUNITY_COLLECTION_PATH}" >> $GITHUB_OUTPUT
fi
env:
COLLECTION_TO_TEST: ${{ matrix.collection }}
AMAZON_COLLECTION_PATH: ${{ steps.install-amazon.outputs.collection_path }}
COMMUNITY_COLLECTION_PATH: ${{ steps.install-community.outputs.collection_path }}
if: steps.read-targets.outputs.ansible_test_targets != ''
- name: Create AWS/sts session credentials
uses: ansible-network/github_actions/.github/actions/ansible_aws_test_provider@main
with:
collection_path: ${{ steps.collection-path.outputs.path }}
ansible_core_ci_key: ${{ secrets.ANSIBLE_CORE_CI_KEY }}
if: steps.read-targets.outputs.ansible_test_targets != ''
- name: Run integration tests
uses: ansible-network/github_actions/.github/actions/ansible_test_integration@main
with:
collection_path: ${{ steps.collection-path.outputs.path }}
python_version: ${{ matrix.python-version }}
ansible_version: ${{ matrix.ansible-version }}
ansible_test_requirement_files: |
requirements.txt
test-requirements.txt
tests/integration/requirements.txt
ansible_test_constraint_files: tests/integration/constraints.txt
if: steps.read-targets.outputs.ansible_test_targets != ''