mirror of
https://github.com/ansible-collections/community.docker.git
synced 2025-12-15 19:42:06 +00:00
Remove CI scripts.
This commit is contained in:
parent
ab08d70dc8
commit
bc1730667b
264
.github/workflows/ansible-test.yml
vendored
264
.github/workflows/ansible-test.yml
vendored
@ -1,264 +0,0 @@
|
|||||||
---
|
|
||||||
# Copyright (c) Ansible Project
|
|
||||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
name: EOL CI
|
|
||||||
on:
|
|
||||||
# Run EOL CI against all pushes (direct commits, also merged PRs), Pull Requests
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- stable-2
|
|
||||||
pull_request:
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
# Make sure there is at most one active run per PR, but do not cancel any non-PR runs
|
|
||||||
group: ${{ github.workflow }}-${{ (github.head_ref && github.event.number) || github.run_id }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
sanity:
|
|
||||||
name: EOL Sanity (Ⓐ${{ matrix.ansible }})
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
ansible:
|
|
||||||
- '2.9'
|
|
||||||
- '2.10'
|
|
||||||
- '2.11'
|
|
||||||
- '2.12'
|
|
||||||
- '2.13'
|
|
||||||
# Ansible-test on various stable branches does not yet work well with cgroups v2.
|
|
||||||
# Since ubuntu-latest now uses Ubuntu 22.04, we need to fall back to the ubuntu-20.04
|
|
||||||
# image for these stable branches. The list of branches where this is necessary will
|
|
||||||
# shrink over time, check out https://github.com/ansible-collections/news-for-maintainers/issues/28
|
|
||||||
# for the latest list.
|
|
||||||
runs-on: >-
|
|
||||||
${{ contains(fromJson(
|
|
||||||
'["2.9", "2.10", "2.11"]'
|
|
||||||
), matrix.ansible) && 'ubuntu-20.04' || 'ubuntu-latest' }}
|
|
||||||
steps:
|
|
||||||
- name: Perform sanity testing
|
|
||||||
uses: felixfontein/ansible-test-gh-action@main
|
|
||||||
with:
|
|
||||||
ansible-core-github-repository-slug: ${{ contains(fromJson('["2.9", "2.10", "2.11"]'), matrix.ansible) && 'ansible-community/eol-ansible' || 'ansible/ansible' }}
|
|
||||||
ansible-core-version: stable-${{ matrix.ansible }}
|
|
||||||
codecov-token: ${{ secrets.CODECOV_TOKEN }}
|
|
||||||
coverage: ${{ github.event_name == 'schedule' && 'always' || 'never' }}
|
|
||||||
pull-request-change-detection: 'true'
|
|
||||||
testing-type: sanity
|
|
||||||
|
|
||||||
units:
|
|
||||||
# Ansible-test on various stable branches does not yet work well with cgroups v2.
|
|
||||||
# Since ubuntu-latest now uses Ubuntu 22.04, we need to fall back to the ubuntu-20.04
|
|
||||||
# image for these stable branches. The list of branches where this is necessary will
|
|
||||||
# shrink over time, check out https://github.com/ansible-collections/news-for-maintainers/issues/28
|
|
||||||
# for the latest list.
|
|
||||||
runs-on: >-
|
|
||||||
${{ contains(fromJson(
|
|
||||||
'["2.9", "2.10", "2.11"]'
|
|
||||||
), matrix.ansible) && 'ubuntu-20.04' || 'ubuntu-latest' }}
|
|
||||||
name: EOL Units (Ⓐ${{ matrix.ansible }})
|
|
||||||
strategy:
|
|
||||||
# As soon as the first unit test fails, cancel the others to free up the CI queue
|
|
||||||
fail-fast: true
|
|
||||||
matrix:
|
|
||||||
ansible:
|
|
||||||
- '2.9'
|
|
||||||
- '2.10'
|
|
||||||
- '2.11'
|
|
||||||
- '2.12'
|
|
||||||
- '2.13'
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: >-
|
|
||||||
Perform unit testing against
|
|
||||||
Ansible version ${{ matrix.ansible }}
|
|
||||||
uses: felixfontein/ansible-test-gh-action@main
|
|
||||||
with:
|
|
||||||
ansible-core-github-repository-slug: ${{ contains(fromJson('["2.9", "2.10", "2.11"]'), matrix.ansible) && 'ansible-community/eol-ansible' || 'ansible/ansible' }}
|
|
||||||
ansible-core-version: stable-${{ matrix.ansible }}
|
|
||||||
codecov-token: ${{ secrets.CODECOV_TOKEN }}
|
|
||||||
coverage: ${{ github.event_name == 'schedule' && 'always' || 'never' }}
|
|
||||||
pull-request-change-detection: 'true'
|
|
||||||
testing-type: units
|
|
||||||
|
|
||||||
integration:
|
|
||||||
# Ansible-test on various stable branches does not yet work well with cgroups v2.
|
|
||||||
# Since ubuntu-latest now uses Ubuntu 22.04, we need to fall back to the ubuntu-20.04
|
|
||||||
# image for these stable branches. The list of branches where this is necessary will
|
|
||||||
# shrink over time, check out https://github.com/ansible-collections/news-for-maintainers/issues/28
|
|
||||||
# for the latest list.
|
|
||||||
runs-on: >-
|
|
||||||
${{ contains(fromJson(
|
|
||||||
'["2.9", "2.10", "2.11"]'
|
|
||||||
), matrix.ansible) && 'ubuntu-20.04' || 'ubuntu-latest' }}
|
|
||||||
name: EOL I (Ⓐ${{ matrix.ansible }}+${{ matrix.docker }}+py${{ matrix.python }}:${{ matrix.target }})
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
ansible:
|
|
||||||
- ''
|
|
||||||
docker:
|
|
||||||
- ''
|
|
||||||
python:
|
|
||||||
- ''
|
|
||||||
target:
|
|
||||||
- ''
|
|
||||||
exclude:
|
|
||||||
- ansible: ''
|
|
||||||
include:
|
|
||||||
# 2.9
|
|
||||||
- ansible: '2.9'
|
|
||||||
docker: ubuntu1804
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group4/
|
|
||||||
- ansible: '2.9'
|
|
||||||
docker: ubuntu1804
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group5/
|
|
||||||
- ansible: '2.9'
|
|
||||||
docker: ubuntu1804
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group6/
|
|
||||||
# 2.10
|
|
||||||
- ansible: '2.10'
|
|
||||||
docker: ubuntu1804
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group4/
|
|
||||||
- ansible: '2.10'
|
|
||||||
docker: ubuntu1804
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group5/
|
|
||||||
- ansible: '2.10'
|
|
||||||
docker: ubuntu1804
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group6/
|
|
||||||
# 2.11
|
|
||||||
- ansible: '2.11'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group4/
|
|
||||||
- ansible: '2.11'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group5/
|
|
||||||
- ansible: '2.11'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group6/
|
|
||||||
# 2.12
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: fedora33
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group4/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: fedora33
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group5/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: fedora33
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group6/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: fedora34
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group4/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: fedora34
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group5/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: fedora34
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group6/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: ubuntu1804
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group4/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: ubuntu1804
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group5/
|
|
||||||
- ansible: '2.12'
|
|
||||||
docker: ubuntu1804
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group6/
|
|
||||||
# 2.13
|
|
||||||
# NB: We originally wanted to use centos7, but that requires cgroups v1.
|
|
||||||
# So we used alpine3 instead.
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group4/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group5/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group6/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: fedora35
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group4/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: fedora35
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group5/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: fedora35
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group6/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: opensuse15py2
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group4/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: opensuse15py2
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group5/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: opensuse15py2
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group6/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group4/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group5/
|
|
||||||
- ansible: '2.13'
|
|
||||||
docker: alpine3
|
|
||||||
python: ''
|
|
||||||
target: shippable/posix/group6/
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: >-
|
|
||||||
Perform integration testing against
|
|
||||||
Ansible version ${{ matrix.ansible }}
|
|
||||||
under Python ${{ matrix.python }}
|
|
||||||
uses: felixfontein/ansible-test-gh-action@main
|
|
||||||
with:
|
|
||||||
ansible-core-github-repository-slug: ${{ contains(fromJson('["2.9", "2.10", "2.11"]'), matrix.ansible) && 'ansible-community/eol-ansible' || 'ansible/ansible' }}
|
|
||||||
ansible-core-version: stable-${{ matrix.ansible }}
|
|
||||||
codecov-token: ${{ secrets.CODECOV_TOKEN }}
|
|
||||||
coverage: ${{ github.event_name == 'schedule' && 'always' || 'never' }}
|
|
||||||
docker-image: ${{ matrix.docker }}
|
|
||||||
integration-continue-on-error: 'false'
|
|
||||||
integration-diff: 'false'
|
|
||||||
integration-retry-on-error: 'true'
|
|
||||||
pre-test-cmd: >-
|
|
||||||
mkdir -p ../../ansible
|
|
||||||
;
|
|
||||||
git clone --depth=1 --single-branch https://github.com/ansible-collections/ansible.posix.git ../../ansible/posix
|
|
||||||
;
|
|
||||||
git clone --depth=1 --single-branch https://github.com/ansible-collections/community.crypto.git ../../community/crypto
|
|
||||||
;
|
|
||||||
git clone --depth=1 --single-branch https://github.com/ansible-collections/community.general.git ../../community/general
|
|
||||||
pull-request-change-detection: 'true'
|
|
||||||
target: ${{ matrix.target }}
|
|
||||||
target-python-version: ${{ matrix.python }}
|
|
||||||
testing-type: integration
|
|
||||||
51
.github/workflows/docs-pr.yml
vendored
51
.github/workflows/docs-pr.yml
vendored
@ -1,51 +0,0 @@
|
|||||||
name: Collection Docs
|
|
||||||
concurrency:
|
|
||||||
group: docs-${{ github.head_ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
on:
|
|
||||||
pull_request_target:
|
|
||||||
types: [opened, synchronize, reopened, closed]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-docs:
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
name: Build Ansible Docs
|
|
||||||
uses: ansible-community/github-docs-build/.github/workflows/_shared-docs-build-pr.yml@main
|
|
||||||
|
|
||||||
comment:
|
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: build-docs
|
|
||||||
name: PR comments
|
|
||||||
steps:
|
|
||||||
- name: PR comment
|
|
||||||
uses: ansible-community/github-docs-build/actions/ansible-docs-build-comment@main
|
|
||||||
with:
|
|
||||||
body-includes: '## Docs Build'
|
|
||||||
reactions: heart
|
|
||||||
action: ${{ needs.build-docs.outputs.changed != 'true' && 'remove' || '' }}
|
|
||||||
on-closed-body: |
|
|
||||||
## Docs Build 📝
|
|
||||||
|
|
||||||
This PR is closed and any previously published docsite has been unpublished.
|
|
||||||
on-merged-body: |
|
|
||||||
## Docs Build 📝
|
|
||||||
|
|
||||||
Thank you for contribution!✨
|
|
||||||
|
|
||||||
This PR has been merged and your docs changes will be incorporated when they are next published.
|
|
||||||
body: |
|
|
||||||
## Docs Build 📝
|
|
||||||
|
|
||||||
Thank you for contribution!✨
|
|
||||||
|
|
||||||
The docsite for **this PR** is available for download as an artifact from this run:
|
|
||||||
${{ needs.build-docs.outputs.artifact-url }}
|
|
||||||
|
|
||||||
File changes:
|
|
||||||
|
|
||||||
${{ needs.build-docs.outputs.diff-files-rendered }}
|
|
||||||
|
|
||||||
${{ needs.build-docs.outputs.diff-rendered }}
|
|
||||||
173
.github/workflows/ee.yml
vendored
173
.github/workflows/ee.yml
vendored
@ -1,173 +0,0 @@
|
|||||||
---
|
|
||||||
name: execution environment
|
|
||||||
on:
|
|
||||||
# Run CI against all pushes (direct commits, also merged PRs), Pull Requests
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- stable-*
|
|
||||||
pull_request:
|
|
||||||
# Run CI once per day (at 04:30 UTC)
|
|
||||||
# This ensures that even if there haven't been commits that we are still testing against latest version of ansible-builder
|
|
||||||
schedule:
|
|
||||||
- cron: '30 4 * * *'
|
|
||||||
|
|
||||||
env:
|
|
||||||
NAMESPACE: community
|
|
||||||
COLLECTION_NAME: docker
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: Build and test EE (${{ matrix.name }})
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
name:
|
|
||||||
- ''
|
|
||||||
ansible_core:
|
|
||||||
- ''
|
|
||||||
ansible_runner:
|
|
||||||
- ''
|
|
||||||
base_image:
|
|
||||||
- ''
|
|
||||||
pre_base:
|
|
||||||
- ''
|
|
||||||
extra_vars:
|
|
||||||
- ''
|
|
||||||
other_deps:
|
|
||||||
- ''
|
|
||||||
exclude:
|
|
||||||
- ansible_core: ''
|
|
||||||
include:
|
|
||||||
- name: ansible-core devel @ RHEL UBI 9
|
|
||||||
ansible_core: https://github.com/ansible/ansible/archive/devel.tar.gz
|
|
||||||
ansible_runner: ansible-runner
|
|
||||||
other_deps: |2
|
|
||||||
python_interpreter:
|
|
||||||
package_system: python3.11 python3.11-pip python3.11-wheel python3.11-cryptography
|
|
||||||
python_path: "/usr/bin/python3.11"
|
|
||||||
python:
|
|
||||||
- PyYAML==5.3.1
|
|
||||||
base_image: docker.io/redhat/ubi9:latest
|
|
||||||
pre_base: '"#"'
|
|
||||||
- name: ansible-core 2.15 @ Rocky Linux 9
|
|
||||||
ansible_core: https://github.com/ansible/ansible/archive/stable-2.15.tar.gz
|
|
||||||
ansible_runner: ansible-runner
|
|
||||||
base_image: quay.io/rockylinux/rockylinux:9
|
|
||||||
pre_base: '"#"'
|
|
||||||
- name: ansible-core 2.14 @ CentOS Stream 9
|
|
||||||
ansible_core: https://github.com/ansible/ansible/archive/stable-2.14.tar.gz
|
|
||||||
ansible_runner: ansible-runner
|
|
||||||
base_image: quay.io/centos/centos:stream9
|
|
||||||
pre_base: '"#"'
|
|
||||||
- name: ansible-core 2.13 @ RHEL UBI 8
|
|
||||||
ansible_core: https://github.com/ansible/ansible/archive/stable-2.13.tar.gz
|
|
||||||
ansible_runner: ansible-runner
|
|
||||||
other_deps: |2
|
|
||||||
python_interpreter:
|
|
||||||
package_system: python39 python39-pip python39-wheel python39-cryptography
|
|
||||||
base_image: docker.io/redhat/ubi8:latest
|
|
||||||
pre_base: '"#"'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Check out code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
path: ansible_collections/${{ env.NAMESPACE }}/${{ env.COLLECTION_NAME }}
|
|
||||||
|
|
||||||
- name: Set up Python
|
|
||||||
uses: actions/setup-python@v5
|
|
||||||
with:
|
|
||||||
python-version: '3.11'
|
|
||||||
|
|
||||||
- name: Install ansible-builder and ansible-navigator
|
|
||||||
run: pip install ansible-builder ansible-navigator
|
|
||||||
|
|
||||||
- name: Verify requirements
|
|
||||||
run: ansible-builder introspect --sanitize .
|
|
||||||
|
|
||||||
- name: Make sure galaxy.yml has version entry
|
|
||||||
run: >-
|
|
||||||
python -c
|
|
||||||
'import yaml ;
|
|
||||||
f = open("galaxy.yml", "rb") ;
|
|
||||||
data = yaml.safe_load(f) ;
|
|
||||||
f.close() ;
|
|
||||||
data["version"] = data.get("version") or "0.0.1" ;
|
|
||||||
f = open("galaxy.yml", "wb") ;
|
|
||||||
f.write(yaml.dump(data).encode("utf-8")) ;
|
|
||||||
f.close() ;
|
|
||||||
'
|
|
||||||
working-directory: ansible_collections/${{ env.NAMESPACE }}/${{ env.COLLECTION_NAME }}
|
|
||||||
|
|
||||||
- name: Build collection
|
|
||||||
run: |
|
|
||||||
ansible-galaxy collection build --output-path ../../../
|
|
||||||
working-directory: ansible_collections/${{ env.NAMESPACE }}/${{ env.COLLECTION_NAME }}
|
|
||||||
|
|
||||||
- name: Create files for building execution environment
|
|
||||||
run: |
|
|
||||||
COLLECTION_FILENAME="$(ls "${{ env.NAMESPACE }}-${{ env.COLLECTION_NAME }}"-*.tar.gz)"
|
|
||||||
|
|
||||||
# EE config
|
|
||||||
cat > execution-environment.yml <<EOF
|
|
||||||
---
|
|
||||||
version: 3
|
|
||||||
dependencies:
|
|
||||||
ansible_core:
|
|
||||||
package_pip: ${{ matrix.ansible_core }}
|
|
||||||
ansible_runner:
|
|
||||||
package_pip: ${{ matrix.ansible_runner }}
|
|
||||||
galaxy: requirements.yml
|
|
||||||
${{ matrix.other_deps }}
|
|
||||||
|
|
||||||
images:
|
|
||||||
base_image:
|
|
||||||
name: ${{ matrix.base_image }}
|
|
||||||
|
|
||||||
additional_build_files:
|
|
||||||
- src: ${COLLECTION_FILENAME}
|
|
||||||
dest: src
|
|
||||||
|
|
||||||
additional_build_steps:
|
|
||||||
prepend_base:
|
|
||||||
- ${{ matrix.pre_base }}
|
|
||||||
EOF
|
|
||||||
echo "::group::execution-environment.yml"
|
|
||||||
cat execution-environment.yml
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
# Requirements
|
|
||||||
cat > requirements.yml <<EOF
|
|
||||||
---
|
|
||||||
collections:
|
|
||||||
- name: src/${COLLECTION_FILENAME}
|
|
||||||
type: file
|
|
||||||
EOF
|
|
||||||
echo "::group::requirements.yml"
|
|
||||||
cat requirements.yml
|
|
||||||
echo "::endgroup::"
|
|
||||||
|
|
||||||
- name: Build image based on ${{ matrix.base_image }}
|
|
||||||
run: |
|
|
||||||
ansible-builder build --verbosity 3 --tag test-ee:latest --container-runtime docker
|
|
||||||
|
|
||||||
- name: Show images
|
|
||||||
run: docker image ls
|
|
||||||
|
|
||||||
- name: Make /var/run/docker.sock accessible by everyone
|
|
||||||
run: sudo chmod a+rw /var/run/docker.sock
|
|
||||||
|
|
||||||
- name: Run basic tests
|
|
||||||
run: >
|
|
||||||
ansible-navigator run
|
|
||||||
--mode stdout
|
|
||||||
--container-engine docker
|
|
||||||
--container-options=-v --container-options=/var/run/docker.sock:/var/run/docker.sock
|
|
||||||
--pull-policy never
|
|
||||||
--set-environment-variable ANSIBLE_PRIVATE_ROLE_VARS=true
|
|
||||||
--execution-environment-image test-ee:latest
|
|
||||||
-v
|
|
||||||
all.yml
|
|
||||||
${{ matrix.extra_vars }}
|
|
||||||
working-directory: ansible_collections/${{ env.NAMESPACE }}/${{ env.COLLECTION_NAME }}/tests/ee
|
|
||||||
20
.github/workflows/import-galaxy.yml
vendored
20
.github/workflows/import-galaxy.yml
vendored
@ -1,20 +0,0 @@
|
|||||||
---
|
|
||||||
# Copyright (c) Ansible Project
|
|
||||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
name: import-galaxy
|
|
||||||
'on':
|
|
||||||
# Run CI against all pushes (direct commits, also merged PRs) to main, and all Pull Requests
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- stable-*
|
|
||||||
pull_request:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
import-galaxy:
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
name: Test to import built collection artifact with Galaxy importer
|
|
||||||
uses: ansible-community/github-action-test-galaxy-import/.github/workflows/test-galaxy-import.yml@main
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -o pipefail -eux
|
|
||||||
|
|
||||||
declare -a args
|
|
||||||
IFS='/:' read -ra args <<< "$1"
|
|
||||||
|
|
||||||
cloud="${args[0]}"
|
|
||||||
python="${args[1]}"
|
|
||||||
group="${args[2]}"
|
|
||||||
|
|
||||||
target="shippable/${cloud}/group${group}/"
|
|
||||||
|
|
||||||
stage="${S:-prod}"
|
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
|
|
||||||
--remote-terminate always --remote-stage "${stage}" \
|
|
||||||
--docker --python "${python}"
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -o pipefail -eux
|
|
||||||
|
|
||||||
declare -a args
|
|
||||||
IFS='/:' read -ra args <<< "$1"
|
|
||||||
|
|
||||||
image="${args[1]}"
|
|
||||||
python="${args[2]}"
|
|
||||||
|
|
||||||
if [ "${#args[@]}" -gt 3 ]; then
|
|
||||||
target="shippable/posix/group${args[3]}/"
|
|
||||||
else
|
|
||||||
target="shippable/posix/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
|
|
||||||
--docker "quay.io/ansible-community/test-image:${image}" --python "${python}"
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -o pipefail -eux
|
|
||||||
|
|
||||||
declare -a args
|
|
||||||
IFS='/:' read -ra args <<< "$1"
|
|
||||||
|
|
||||||
image="${args[1]}"
|
|
||||||
|
|
||||||
if [ "${#args[@]}" -gt 2 ]; then
|
|
||||||
target="shippable/posix/group${args[2]}/"
|
|
||||||
else
|
|
||||||
target="shippable/posix/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
|
|
||||||
--docker "${image}"
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -o pipefail -eux
|
|
||||||
|
|
||||||
declare -a args
|
|
||||||
IFS='/:' read -ra args <<< "$1"
|
|
||||||
|
|
||||||
platform="${args[0]}"
|
|
||||||
version="${args[1]}"
|
|
||||||
target="shippable/posix/"
|
|
||||||
|
|
||||||
if [ "${#args[@]}" -gt 2 ]; then
|
|
||||||
target="shippable/posix/group${args[2]}/"
|
|
||||||
else
|
|
||||||
target="shippable/posix/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
force_python=""
|
|
||||||
if [[ "${version}" =~ -pypi-latest$ ]]; then
|
|
||||||
version="${version/-pypi-latest}"
|
|
||||||
echo 'force_docker_sdk_for_python_pypi: true' >> tests/integration/integration_config.yml
|
|
||||||
if [ "${platform}" == "rhel" ] && [[ "${version}" =~ ^8\. ]]; then
|
|
||||||
# Use Python 3.8 on RHEL 8.x - TODO: this might be no longer necessary for high enough minor version! Check!
|
|
||||||
force_python="--python 3.8"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
stage="${S:-prod}"
|
|
||||||
provider="${P:-default}"
|
|
||||||
|
|
||||||
if [ "${platform}" == "rhel" ] && [[ "${version}" =~ ^8\. ]]; then
|
|
||||||
echo "pynacl >= 1.4.0, < 1.5.0; python_version == '3.6'" >> tests/utils/constraints.txt
|
|
||||||
fi
|
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \
|
|
||||||
--remote "${platform}/${version}" --remote-terminate always --remote-stage "${stage}" --remote-provider "${provider}" ${force_python}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
remote.sh
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -o pipefail -eux
|
|
||||||
|
|
||||||
declare -a args
|
|
||||||
IFS='/:' read -ra args <<< "$1"
|
|
||||||
|
|
||||||
group="${args[1]}"
|
|
||||||
|
|
||||||
if [ "${BASE_BRANCH:-}" ]; then
|
|
||||||
base_branch="origin/${BASE_BRANCH}"
|
|
||||||
else
|
|
||||||
base_branch=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${group}" == "extra" ]; then
|
|
||||||
../internal_test_tools/tools/run.py --color --bot --junit
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
ansible-test sanity --color -v --junit ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} \
|
|
||||||
--docker --base-branch "${base_branch}" \
|
|
||||||
--allow-disabled
|
|
||||||
@ -1,221 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -o pipefail -eux
|
|
||||||
|
|
||||||
declare -a args
|
|
||||||
IFS='/:' read -ra args <<< "$1"
|
|
||||||
|
|
||||||
ansible_version="${args[0]}"
|
|
||||||
script="${args[1]}"
|
|
||||||
|
|
||||||
function join {
|
|
||||||
local IFS="$1";
|
|
||||||
shift;
|
|
||||||
echo "$*";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Ensure we can write other collections to this dir
|
|
||||||
sudo chown -R "$(whoami)" "${PWD}/../../../"
|
|
||||||
|
|
||||||
test="$(join / "${args[@]:1}")"
|
|
||||||
|
|
||||||
docker images ansible/ansible
|
|
||||||
docker images quay.io/ansible/*
|
|
||||||
docker ps
|
|
||||||
|
|
||||||
for container in $(docker ps --format '{{.Image}} {{.ID}}' | grep -v -e '^drydock/' -e '^quay.io/ansible/azure-pipelines-test-container:' | sed 's/^.* //'); do
|
|
||||||
docker rm -f "${container}" || true # ignore errors
|
|
||||||
done
|
|
||||||
|
|
||||||
docker ps
|
|
||||||
|
|
||||||
if [ -d /home/shippable/cache/ ]; then
|
|
||||||
ls -la /home/shippable/cache/
|
|
||||||
fi
|
|
||||||
|
|
||||||
command -v python
|
|
||||||
python -V
|
|
||||||
|
|
||||||
function retry
|
|
||||||
{
|
|
||||||
# shellcheck disable=SC2034
|
|
||||||
for repetition in 1 2 3; do
|
|
||||||
set +e
|
|
||||||
"$@"
|
|
||||||
result=$?
|
|
||||||
set -e
|
|
||||||
if [ ${result} == 0 ]; then
|
|
||||||
return ${result}
|
|
||||||
fi
|
|
||||||
echo "@* -> ${result}"
|
|
||||||
done
|
|
||||||
echo "Command '@*' failed 3 times!"
|
|
||||||
exit 255
|
|
||||||
}
|
|
||||||
|
|
||||||
command -v pip
|
|
||||||
pip --version
|
|
||||||
pip list --disable-pip-version-check
|
|
||||||
if [ "${ansible_version}" == "devel" ]; then
|
|
||||||
retry pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check
|
|
||||||
else
|
|
||||||
retry pip install "https://github.com/ansible/ansible/archive/stable-${ansible_version}.tar.gz" --disable-pip-version-check
|
|
||||||
fi
|
|
||||||
|
|
||||||
export ANSIBLE_COLLECTIONS_PATHS="${PWD}/../../../"
|
|
||||||
|
|
||||||
if [ "${test}" == "sanity/extra" ]; then
|
|
||||||
retry pip install junit-xml --disable-pip-version-check
|
|
||||||
fi
|
|
||||||
|
|
||||||
# START: HACK
|
|
||||||
if [ "${test}" == "sanity/extra" ]; then
|
|
||||||
# Nothing further should be added to this list.
|
|
||||||
# This is to prevent modules or plugins in this collection having a runtime dependency on other collections.
|
|
||||||
retry git clone --depth=1 --single-branch https://github.com/ansible-collections/community.internal_test_tools.git "${ANSIBLE_COLLECTIONS_PATHS}/ansible_collections/community/internal_test_tools"
|
|
||||||
# NOTE: we're installing with git to work around Galaxy being a huge PITA (https://github.com/ansible/galaxy/issues/2429)
|
|
||||||
# retry ansible-galaxy -vvv collection install community.internal_test_tools
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${script}" != "sanity" ] && [ "${script}" != "units" ] && [ "${test}" != "sanity/extra" ]; then
|
|
||||||
# To prevent Python dependencies on other collections only install other collections for integration tests
|
|
||||||
retry git clone --depth=1 --single-branch https://github.com/ansible-collections/ansible.posix.git "${ANSIBLE_COLLECTIONS_PATHS}/ansible_collections/ansible/posix"
|
|
||||||
retry git clone --depth=1 --single-branch https://github.com/ansible-collections/community.crypto.git "${ANSIBLE_COLLECTIONS_PATHS}/ansible_collections/community/crypto"
|
|
||||||
retry git clone --depth=1 --single-branch https://github.com/ansible-collections/community.general.git "${ANSIBLE_COLLECTIONS_PATHS}/ansible_collections/community/general"
|
|
||||||
# NOTE: we're installing with git to work around Galaxy being a huge PITA (https://github.com/ansible/galaxy/issues/2429)
|
|
||||||
# retry ansible-galaxy -vvv collection install ansible.posix
|
|
||||||
# retry ansible-galaxy -vvv collection install community.crypto
|
|
||||||
# retry ansible-galaxy -vvv collection install community.general
|
|
||||||
fi
|
|
||||||
# END: HACK
|
|
||||||
|
|
||||||
|
|
||||||
export PYTHONIOENCODING='utf-8'
|
|
||||||
|
|
||||||
if [ "${JOB_TRIGGERED_BY_NAME:-}" == "nightly-trigger" ]; then
|
|
||||||
COVERAGE=yes
|
|
||||||
COMPLETE=yes
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${COVERAGE:-}" ]; then
|
|
||||||
# on-demand coverage reporting triggered by setting the COVERAGE environment variable to a non-empty value
|
|
||||||
export COVERAGE="--coverage"
|
|
||||||
elif [[ "${COMMIT_MESSAGE}" =~ ci_coverage ]]; then
|
|
||||||
# on-demand coverage reporting triggered by having 'ci_coverage' in the latest commit message
|
|
||||||
export COVERAGE="--coverage"
|
|
||||||
else
|
|
||||||
# on-demand coverage reporting disabled (default behavior, always-on coverage reporting remains enabled)
|
|
||||||
export COVERAGE="--coverage-check"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "${COMPLETE:-}" ]; then
|
|
||||||
# disable change detection triggered by setting the COMPLETE environment variable to a non-empty value
|
|
||||||
export CHANGED=""
|
|
||||||
elif [[ "${COMMIT_MESSAGE}" =~ ci_complete ]]; then
|
|
||||||
# disable change detection triggered by having 'ci_complete' in the latest commit message
|
|
||||||
export CHANGED=""
|
|
||||||
else
|
|
||||||
# enable change detection (default behavior)
|
|
||||||
export CHANGED="--changed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${IS_PULL_REQUEST:-}" == "true" ]; then
|
|
||||||
# run unstable tests which are targeted by focused changes on PRs
|
|
||||||
export UNSTABLE="--allow-unstable-changed"
|
|
||||||
else
|
|
||||||
# do not run unstable tests outside PRs
|
|
||||||
export UNSTABLE=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# remove empty core/extras module directories from PRs created prior to the repo-merge
|
|
||||||
find plugins -type d -empty -print -delete
|
|
||||||
|
|
||||||
function cleanup
|
|
||||||
{
|
|
||||||
# for complete on-demand coverage generate a report for all files with no coverage on the "sanity/5" job so we only have one copy
|
|
||||||
if [ "${COVERAGE}" == "--coverage" ] && [ "${CHANGED}" == "" ] && [ "${test}" == "sanity/5" ]; then
|
|
||||||
stub="--stub"
|
|
||||||
# trigger coverage reporting for stubs even if no other coverage data exists
|
|
||||||
mkdir -p tests/output/coverage/
|
|
||||||
else
|
|
||||||
stub=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d tests/output/coverage/ ]; then
|
|
||||||
if find tests/output/coverage/ -mindepth 1 -name '.*' -prune -o -print -quit | grep -q .; then
|
|
||||||
process_coverage='yes' # process existing coverage files
|
|
||||||
elif [ "${stub}" ]; then
|
|
||||||
process_coverage='yes' # process coverage when stubs are enabled
|
|
||||||
else
|
|
||||||
process_coverage=''
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "${process_coverage}" ]; then
|
|
||||||
# use python 3.7 for coverage to avoid running out of memory during coverage xml processing
|
|
||||||
# only use it for coverage to avoid the additional overhead of setting up a virtual environment for a potential no-op job
|
|
||||||
virtualenv --python /usr/bin/python3.7 ~/ansible-venv
|
|
||||||
set +ux
|
|
||||||
. ~/ansible-venv/bin/activate
|
|
||||||
set -ux
|
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
ansible-test coverage xml --color -v --requirements --group-by command --group-by version ${stub:+"$stub"}
|
|
||||||
cp -a tests/output/reports/coverage=*.xml "$SHIPPABLE_RESULT_DIR/codecoverage/"
|
|
||||||
|
|
||||||
if [ "${ansible_version}" != "2.9" ]; then
|
|
||||||
# analyze and capture code coverage aggregated by integration test target
|
|
||||||
ansible-test coverage analyze targets generate -v "$SHIPPABLE_RESULT_DIR/testresults/coverage-analyze-targets.json"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# upload coverage report to codecov.io only when using complete on-demand coverage
|
|
||||||
if [ "${COVERAGE}" == "--coverage" ] && [ "${CHANGED}" == "" ]; then
|
|
||||||
for file in tests/output/reports/coverage=*.xml; do
|
|
||||||
flags="${file##*/coverage=}"
|
|
||||||
flags="${flags%-powershell.xml}"
|
|
||||||
flags="${flags%.xml}"
|
|
||||||
# remove numbered component from stub files when converting to tags
|
|
||||||
flags="${flags//stub-[0-9]*/stub}"
|
|
||||||
flags="${flags//=/,}"
|
|
||||||
flags="${flags//[^a-zA-Z0-9_,]/_}"
|
|
||||||
|
|
||||||
bash <(curl -s https://ansible-ci-files.s3.us-east-1.amazonaws.com/codecov/codecov.sh) \
|
|
||||||
-f "${file}" \
|
|
||||||
-F "${flags}" \
|
|
||||||
-n "${test}" \
|
|
||||||
-t 8450ed26-4e94-4d07-8831-d2023d6d20a3 \
|
|
||||||
-X coveragepy \
|
|
||||||
-X gcov \
|
|
||||||
-X fix \
|
|
||||||
-X search \
|
|
||||||
-X xcode \
|
|
||||||
|| echo "Failed to upload code coverage report to codecov.io: ${file}"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d tests/output/junit/ ]; then
|
|
||||||
cp -aT tests/output/junit/ "$SHIPPABLE_RESULT_DIR/testresults/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d tests/output/data/ ]; then
|
|
||||||
cp -a tests/output/data/ "$SHIPPABLE_RESULT_DIR/testresults/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d tests/output/bot/ ]; then
|
|
||||||
cp -aT tests/output/bot/ "$SHIPPABLE_RESULT_DIR/testresults/"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ "${SHIPPABLE_BUILD_ID:-}" ]; then trap cleanup EXIT; fi
|
|
||||||
|
|
||||||
if [[ "${COVERAGE:-}" == "--coverage" ]]; then
|
|
||||||
timeout=60
|
|
||||||
else
|
|
||||||
timeout=50
|
|
||||||
fi
|
|
||||||
|
|
||||||
ansible-test env --dump --show --timeout "${timeout}" --color -v
|
|
||||||
|
|
||||||
if [ "${SHIPPABLE_BUILD_ID:-}" ]; then "tests/utils/shippable/check_matrix.py"; fi
|
|
||||||
"tests/utils/shippable/${script}.sh" "${test}"
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -o pipefail -eux
|
|
||||||
|
|
||||||
declare -a args
|
|
||||||
IFS='/:' read -ra args <<< "$1"
|
|
||||||
|
|
||||||
group="${args[1]}"
|
|
||||||
|
|
||||||
if [[ "${COVERAGE:-}" == "--coverage" ]]; then
|
|
||||||
timeout=90
|
|
||||||
else
|
|
||||||
timeout=30
|
|
||||||
fi
|
|
||||||
|
|
||||||
group1=()
|
|
||||||
|
|
||||||
case "${group}" in
|
|
||||||
1) options=("${group1[@]:+${group1[@]}}") ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
ansible-test env --timeout "${timeout}" --color -v
|
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
ansible-test units --color -v --docker default ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} \
|
|
||||||
"${options[@]:+${options[@]}}" \
|
|
||||||
Loading…
Reference in New Issue
Block a user