summaryrefslogtreecommitdiffstats
path: root/ansible_collections/cisco/aci/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to 'ansible_collections/cisco/aci/.github/workflows')
-rw-r--r--ansible_collections/cisco/aci/.github/workflows/ansible-test.yml243
-rw-r--r--ansible_collections/cisco/aci/.github/workflows/changelog-generation.yml32
-rw-r--r--ansible_collections/cisco/aci/.github/workflows/codeql-analysis.yml43
-rw-r--r--ansible_collections/cisco/aci/.github/workflows/galaxy-importer.cfg9
4 files changed, 327 insertions, 0 deletions
diff --git a/ansible_collections/cisco/aci/.github/workflows/ansible-test.yml b/ansible_collections/cisco/aci/.github/workflows/ansible-test.yml
new file mode 100644
index 000000000..53799a4ab
--- /dev/null
+++ b/ansible_collections/cisco/aci/.github/workflows/ansible-test.yml
@@ -0,0 +1,243 @@
+name: CI
+on:
+ push:
+ branches: master
+ pull_request:
+ schedule:
+ # * is a special character in YAML so you have to quote this string
+ - cron: '0 8 * * *'
+env:
+ python_version: 3.9
+jobs:
+ build:
+ name: Build collection
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ ansible: [v2.9.27, v2.10.17, v2.11.12, v2.12.10, stable-2.13, stable-2.14]
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v3
+
+ - name: Set up Python ${{ env.python_version }}
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{ env.python_version }}
+
+ - name: Install ansible-base (${{ matrix.ansible }})
+ run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check
+
+ - name: Build a collection tarball
+ run: ansible-galaxy collection build --output-path "${GITHUB_WORKSPACE}/.cache/collection-tarballs"
+
+ - name: Store migrated collection artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: collection
+ path: .cache/collection-tarballs
+
+ black-formating:
+ name: Using Black to check formating
+ runs-on: ubuntu-latest
+ continue-on-error: true
+ strategy:
+ fail-fast: false
+ matrix:
+ experimental: [true]
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v3
+
+ - name: Run black against code
+ uses: psf/black@stable
+ with:
+ options: "--check --diff --color -l 159"
+
+ importer:
+ name: Galaxy-importer check
+ needs:
+ - build
+ runs-on: ubuntu-latest
+ steps:
+ - name: Set up Python ${{ env.python_version }}
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{ env.python_version }}
+
+ - name: Install ansible-base (stable-2.14)
+ run: pip install https://github.com/ansible/ansible/archive/stable-2.14.tar.gz --disable-pip-version-check
+
+ - name: Download migrated collection artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: collection
+ path: .cache/collection-tarballs
+
+ - name: Install the collection tarball
+ run: ansible-galaxy collection install .cache/collection-tarballs/*.tar.gz
+
+ - name: Install galaxy-importer
+ run: pip install galaxy-importer
+
+ - name: Create galaxy-importer directory
+ run: sudo mkdir -p /etc/galaxy-importer
+
+ - name: Create galaxy-importer.cfg
+ run: sudo cp /home/runner/.ansible/collections/ansible_collections/cisco/aci/.github/workflows/galaxy-importer.cfg /etc/galaxy-importer/galaxy-importer.cfg
+
+ - name: Run galaxy-importer check
+ run: python -m galaxy_importer.main .cache/collection-tarballs/cisco-*.tar.gz | tee .cache/collection-tarballs/log.txt && sudo cp ./importer_result.json .cache/collection-tarballs/importer_result.json
+
+ - name: Check warnings and errors
+ run: if grep -E 'WARNING|ERROR' .cache/collection-tarballs/log.txt; then exit 1; else exit 0; fi
+
+ - name: Store galaxy_importer check log file
+ uses: actions/upload-artifact@v3
+ with:
+ name: galaxy-importer-log
+ path: .cache/collection-tarballs/importer_result.json
+
+
+ sanity:
+ name: Sanity in ubuntu-latest
+ needs:
+ - build
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ ansible: [v2.9.27, v2.10.17, v2.11.12, v2.12.10, stable-2.13, stable-2.14]
+ steps:
+ - name: Set up Python ${{ env.python_version }}
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{ env.python_version }}
+
+ - name: Install ansible-base (${{ matrix.ansible }})
+ run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check
+
+ - name: Install coverage (v4.5.4)
+ run: pip install coverage==4.5.4
+
+ - name: Download migrated collection artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: collection
+ path: .cache/collection-tarballs
+
+ - name: Install the collection tarball
+ run: ansible-galaxy collection install .cache/collection-tarballs/*.tar.gz
+
+ - name: Run sanity tests
+ run: ansible-test sanity --docker -v --color --truncate 0 --coverage
+ working-directory: /home/runner/.ansible/collections/ansible_collections/cisco/aci
+
+ - name: Generate coverage report
+ run: ansible-test coverage xml -v --requirements --group-by command --group-by version
+ working-directory: /home/runner/.ansible/collections/ansible_collections/cisco/aci
+
+ - name: Push coverate report to codecov.io
+ run: bash <(curl -s https://codecov.io/bash) -s 'tests/output/reports/' -F sanity
+ working-directory: /home/runner/.ansible/collections/ansible_collections/cisco/aci
+
+ units:
+ name: Units in ubuntu-latest
+ needs:
+ - build
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ ansible: [v2.10.17, v2.11.12, v2.12.10, stable-2.13, stable-2.14]
+ python-version: [3.9]
+ include:
+ - ansible: v2.9.27
+ python-version: 3.8
+ steps:
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{ matrix.python-version }}
+
+ - name: Install ansible-base (${{ matrix.ansible }})
+ run: pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check
+
+ - name: Install coverage (v4.5.4)
+ run: pip install coverage==4.5.4
+
+ - name: Download migrated collection artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: collection
+ path: .cache/collection-tarballs
+
+ - name: Install the collection tarball
+ run: ansible-galaxy collection install .cache/collection-tarballs/*.tar.gz
+
+ # - name: Run unit tests
+ # run: ansible-test units --docker -v --color --truncate 0 --python ${{ matrix.python-version }} --coverage
+ # working-directory: /home/runner/.ansible/collections/ansible_collections/cisco/aci
+
+ # - name: Generate coverage report.
+ # run: ansible-test coverage xml -v --requirements --group-by command --group-by version
+ # working-directory: /home/runner/.ansible/collections/ansible_collections/cisco/aci
+
+ # - name: Push coverate report to codecov.io
+ # run: bash <(curl -s https://codecov.io/bash) -s 'tests/output/reports/' -F unit
+ # working-directory: /home/runner/.ansible/collections/ansible_collections/cisco/aci
+
+ integration:
+ name: Integration in ubuntu-latest
+ needs:
+ - build
+ runs-on: ubuntu-latest
+ steps:
+ - name: Set up Python ${{ env.python_version }}
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{ env.python_version }}
+
+ - name: Install ansible-base (stable-2.13)
+ run: pip install https://github.com/ansible/ansible/archive/stable-2.13.tar.gz --disable-pip-version-check
+
+ - name: Install coverage (v4.5.4)
+ run: pip install coverage==4.5.4
+
+ - name: Download migrated collection artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: collection
+ path: .cache/collection-tarballs
+
+ - name: Install the collection tarball
+ run: ansible-galaxy collection install .cache/collection-tarballs/*.tar.gz
+
+ - name: Requesting integration mutex
+ uses: nev7n/wait_for_response@v1
+ with:
+ url: ${{ format('https://8v7s765ibh.execute-api.us-west-1.amazonaws.com/v1/ansible-aci?repo={0}&run_id={1}', github.repository, github.run_id) }}
+ responseCode: 200
+ timeout: 2000000
+ interval: 5000
+
+ - name: Run integration tests on Python ${{ env.python_version }}
+ run: ansible-test network-integration --docker -v --color --retry-on-error --python ${{ env.python_version }} --truncate 0 --continue-on-error --coverage
+ working-directory: /home/runner/.ansible/collections/ansible_collections/cisco/aci
+
+ - name: Releasing integration mutex
+ uses: nev7n/wait_for_response@v1
+ if: always()
+ with:
+ url: ${{ format('https://8v7s765ibh.execute-api.us-west-1.amazonaws.com/v1/ansible-aci/release?repo={0}&run_id={1}', github.repository, github.run_id) }}
+ responseCode: 200
+
+ - name: Generate coverage report
+ if: always()
+ run: ansible-test coverage xml -v --requirements --group-by command --group-by version
+ working-directory: /home/runner/.ansible/collections/ansible_collections/cisco/aci
+
+ - name: Push coverate report to codecov.io
+ if: always()
+ run: bash <(curl -s https://codecov.io/bash) -s 'tests/output/reports/' -F integration
+ working-directory: /home/runner/.ansible/collections/ansible_collections/cisco/aci
diff --git a/ansible_collections/cisco/aci/.github/workflows/changelog-generation.yml b/ansible_collections/cisco/aci/.github/workflows/changelog-generation.yml
new file mode 100644
index 000000000..a6342e23b
--- /dev/null
+++ b/ansible_collections/cisco/aci/.github/workflows/changelog-generation.yml
@@ -0,0 +1,32 @@
+name: Generate Changelog
+on:
+ push:
+ branches: master
+jobs:
+ generate-changelog:
+ name: Run automation script
+ runs-on: ubuntu-latest
+ steps:
+ - name: Check out script code
+ uses: actions/checkout@v3
+ with:
+ repository: ciscoecosystem/release_script
+ path: ./release_script
+
+ - name: Check out collection code
+ uses: actions/checkout@v3
+ with:
+ path: ./collection
+
+ - name: Set up Python 3.9
+ uses: actions/setup-python@v4
+ with:
+ python-version: 3.9
+
+ - name: Install release script requirements
+ run: pip install -r ./release_script/requirements.txt
+
+ - name: Run automation script
+ run: python ./release_script/script.py
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/ansible_collections/cisco/aci/.github/workflows/codeql-analysis.yml b/ansible_collections/cisco/aci/.github/workflows/codeql-analysis.yml
new file mode 100644
index 000000000..76aa96c9b
--- /dev/null
+++ b/ansible_collections/cisco/aci/.github/workflows/codeql-analysis.yml
@@ -0,0 +1,43 @@
+name: "CodeQL"
+
+on:
+ push:
+ branches: [ "master" ]
+
+ schedule:
+ - cron: '40 8 * * 5'
+
+jobs:
+ analyze:
+ name: Analyze
+ runs-on: ubuntu-latest
+ permissions:
+ actions: read
+ contents: read
+ security-events: write
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'python' ]
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
+ # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+
+ # Initializes the CodeQL tools for scanning.
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v2
+ with:
+ languages: ${{ matrix.language }}
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+
+ # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
+ # queries: security-extended,security-and-quality
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v2
diff --git a/ansible_collections/cisco/aci/.github/workflows/galaxy-importer.cfg b/ansible_collections/cisco/aci/.github/workflows/galaxy-importer.cfg
new file mode 100644
index 000000000..631359cf4
--- /dev/null
+++ b/ansible_collections/cisco/aci/.github/workflows/galaxy-importer.cfg
@@ -0,0 +1,9 @@
+[galaxy-importer]
+LOG_LEVEL_MAIN = INFO
+RUN_FLAKE8 = True
+RUN_ANSIBLE_DOC = True
+RUN_ANSIBLE_LINT = True
+RUN_ANSIBLE_TEST = False
+ANSIBLE_TEST_LOCAL_IMAGE = False
+LOCAL_IMAGE_DOCKER = False
+INFRA_OSD = False \ No newline at end of file