Skip to content

Commit

Permalink
integration workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
abikouo committed Jul 20, 2023
1 parent 3f67a69 commit 92f7301
Showing 1 changed file with 22 additions and 42 deletions.
64 changes: 22 additions & 42 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ jobs:
env:
source_dir: "cloud_awsops"
outputs:
test_targets: ${{ steps.display.outputs.test_targets }}
test_targets: ${{ steps.splitter.outputs.test_targets }}
test_targets_json: ${{ steps.splitter.outputs.test_targets_json }}
test_jobs: ${{ steps.splitter.outputs.test_jobs }}
steps:
- name: Checkout collection
uses: actions/checkout@v3
Expand All @@ -25,68 +27,46 @@ jobs:

- name: List changes for pull request
id: splitter
uses: ansible-network/github_actions/.github/actions/ansible_test_splitter@main
uses: abikouo/github_actions/.github/actions/ansible_test_splitter@test_splitter_07202023
with:
collections_to_test: ${{ env.source_dir }}
total_jobs: 4

- name: display targets
id: display
run: echo "test_targets=${{ steps.splitter.outputs.test_targets }}" >> $GITHUB_OUTPUT
shell: bash
build_matrix:
runs-on: ubuntu-latest
if: ${{ needs.splitter.outputs.test_targets != '' }}
needs:
- splitter
outputs:
test_matrix: ${{ steps.generate-workflow.outputs.targets }}
test_targets: ${{ needs.splitter.outputs.test_targets }}
steps:
- name: Generate workflow id
id: generate-workflow
- name: Display splitter output
run: |
import os, json
targets=[d.split(':', maxsplit=1)[0] for d in os.environ.get('TEST_TARGETS').split(";")]
output_path = os.environ.get('GITHUB_OUTPUT')
with open(output_path, "a", encoding="utf-8") as fw:
fw.write(f'targets={json.dumps(targets)}\n')
shell: python
env:
TEST_TARGETS: ${{ needs.splitter.outputs.test_targets }}

- name: Display matrix elements
run: echo "Workflow list => ${{ steps.generate-workflow.outputs.targets }}"
echo "test_targets=${{ steps.splitter.outputs.test_targets }}"
echo "test_targets_json=${{ steps.splitter.outputs.test_targets_json }}"
echo "test_jobs=${{ steps.splitter.outputs.test_jobs }}"
shell: bash
test:
runs-on: ubuntu-latest
needs:
- build_matrix
- splitter
if: ${{ needs.splitter.outputs.test_targets != '' }}
env:
source: "./source"
ansible_version: "stable-2.14"
python_version: "3.9"
SPLITTER_TARGETS: ${{ needs.build_matrix.outputs.test_targets }}
strategy:
fail-fast: false
matrix:
workflow-id: ${{ fromJson(needs.build_matrix.outputs.test_matrix) }}
workflow-id: ${{ fromJson(needs.splitter.outputs.test_jobs) }}
name: "integration-${{ matrix.workflow-id }}"
steps:
- name: Read ansible-test targets
- name: setup python
uses: actions/setup-python@v4
with:
python-version: "3.9"

- name: Read target
id: read-targets
run: |
import os
workflow_id = os.environ.get('TEST_WORKFLOW_ID')
all_targets = os.environ.get('SPLITTER_TARGETS')
workflow_targets={d.split(':', maxsplit=1)[0]: d.split(':', maxsplit=1)[1] for d in all_targets.split(";")}[workflow_id]
targets = " ".join(workflow_targets.split(","))
output_path = os.environ.get('GITHUB_OUTPUT')
with open(output_path, "a", encoding="utf-8") as fw:
fw.write(f"ansible_test_targets={targets}\n")
shell: python
pip install -U jq
TARGETS=$(echo '$SPLITTER_TEST_TARGETS' | jq '.${{ matrix.workflow-id }}')
echo "ansible_test_targets=${TARGETS}" >> $GITHUB_OUTPUT
shell: bash
env:
TEST_WORKFLOW_ID: "${{ matrix.workflow-id }}"
SPLITTER_TEST_TARGETS: ${{ needs.test_splitter.outputs.test_targets_json }}

- name: Checkout collection
uses: actions/checkout@v3
Expand Down

0 comments on commit 92f7301

Please sign in to comment.