Merge branch 'develop' into readme_cleanup #643
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | ||
on: | ||
- push | ||
- pull_request | ||
concurrency: | ||
# If changes are pushed to a PR, stop all running workflows before starting new ones | ||
group: ${{ github.head_ref || (github.repository == 'saltstack/salt-bootstrap' && github.run_id || github.ref_name) }} | ||
cancel-in-progress: true | ||
jobs: | ||
collect-changed-files: | ||
name: Collect changed files | ||
runs-on: ubuntu-latest | ||
outputs: | ||
run-tests: ${{ steps.set-output.outputs.run-tests }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
- name: Get specific changed files | ||
id: changed-files | ||
uses: tj-actions/changed-files@v25 | ||
with: | ||
separator: "," | ||
files: | | ||
bootstrap-salt.* | ||
Gemfile | ||
kitchen*.yml | ||
tests/** | ||
.github/workflows/** | ||
files_ignore: | | ||
.github/workflows/release.yml | ||
- name: Set Job Output | ||
id: set-output | ||
run: | | ||
echo "::set-output name=run-tests::${{ steps.changed-files.outputs.any_modified }}" | ||
- name: Set Exit Status | ||
if: always() | ||
run: | | ||
mkdir exitstatus | ||
echo "${{ job.status }}" > exitstatus/${{ github.job }} | ||
- name: Upload Exit Status | ||
if: always() | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: exitstatus | ||
path: exitstatus | ||
generate-actions-workflow: | ||
name: Generate The Actions Workflow | ||
runs-on: ubuntu-latest | ||
needs: collect-changed-files | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up Python 3.9 | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: 3.9 | ||
- name: Install Pre-Commit | ||
run: | | ||
python3 -m pip install -U pip | ||
python3 -m pip install pre-commit | ||
pre-commit install --install-hooks | ||
- name: Generate Workflow Actions | ||
run: | | ||
pre-commit run -av generate-actions-workflow | ||
- name: Set Exit Status | ||
if: always() | ||
run: | | ||
mkdir exitstatus | ||
echo "${{ job.status }}" > exitstatus/${{ github.job }} | ||
- name: Upload Exit Status | ||
if: always() | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: exitstatus | ||
path: exitstatus | ||
lint: | ||
name: Lint | ||
runs-on: ubuntu-latest | ||
needs: collect-changed-files | ||
container: koalaman/shellcheck-alpine:v0.7.0 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: ShellCheck | ||
run: | | ||
shellcheck -s sh -f tty bootstrap-salt.sh | ||
- name: Set Exit Status | ||
if: always() | ||
run: | | ||
mkdir exitstatus | ||
echo "${{ job.status }}" > exitstatus/${{ github.job }} | ||
- name: Upload Exit Status | ||
if: always() | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: exitstatus | ||
path: exitstatus | ||
freebsd-131: | ||
name: FreeBSD 13.1 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-bsd.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: freebsd-131 | ||
display-name: FreeBSD 13.1 | ||
timeout: 20 | ||
runs-on: macos-12 | ||
instances: '["latest"]' | ||
freebsd-123: | ||
name: FreeBSD 12.3 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-bsd.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: freebsd-123 | ||
display-name: FreeBSD 12.3 | ||
timeout: 20 | ||
runs-on: macos-12 | ||
instances: '["latest"]' | ||
openbsd-7: | ||
name: OpenBSD 7 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-bsd.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: openbsd-7 | ||
display-name: OpenBSD 7 | ||
timeout: 20 | ||
runs-on: macos-12 | ||
instances: '["latest"]' | ||
macos-11: | ||
name: macOS 11 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-macos.yml | ||
Check failure on line 167 in .github/workflows/ci.yml GitHub Actions / CIInvalid workflow file
|
||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: macos-11 | ||
display-name: macOS 11 | ||
timeout: 20 | ||
runs-on: macos-11 | ||
instances: '["old-stable-3003", "old-stable-3004", "old-stable-3005", "stable-3006", "stable-3006-1", "latest"]' | ||
macos-12: | ||
name: macOS 12 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-macos.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: macos-12 | ||
display-name: macOS 12 | ||
timeout: 20 | ||
runs-on: macos-12 | ||
instances: '["old-stable-3003", "old-stable-3004", "old-stable-3005", "stable-3006", "stable-3006-1", "latest"]' | ||
windows-2019: | ||
name: Windows 2019 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-windows.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: windows-2019 | ||
display-name: Windows 2019 | ||
timeout: 20 | ||
runs-on: windows-2019 | ||
instances: '["stable-3005", "stable-3005-1", "stable-3006", "stable-3006-1", "latest"]' | ||
windows-2022: | ||
name: Windows 2022 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-windows.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: windows-2022 | ||
display-name: Windows 2022 | ||
timeout: 20 | ||
runs-on: windows-2022 | ||
instances: '["stable-3005", "stable-3005-1", "stable-3006", "stable-3006-1", "latest"]' | ||
almalinux-8: | ||
name: AlmaLinux 8 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: almalinux-8 | ||
display-name: AlmaLinux 8 | ||
timeout: 20 | ||
instances: '["old-stable-3003", "old-stable-3004", "old-stable-3005", "stable-3005", "onedir-3005", "stable-3005-1", "stable-3006", "onedir-3006", "stable-3006-1", "latest", "default"]' | ||
almalinux-9: | ||
name: AlmaLinux 9 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: almalinux-9 | ||
display-name: AlmaLinux 9 | ||
timeout: 20 | ||
instances: '["git-3005", "stable-3006", "onedir-3006", "stable-3006-1", "git-master", "latest", "default"]' | ||
amazon-2: | ||
name: Amazon 2 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: amazon-2 | ||
display-name: Amazon 2 | ||
timeout: 20 | ||
instances: '["old-stable-3003", "old-stable-3004", "old-stable-3005", "stable-3005", "onedir-3005", "stable-3005-1", "stable-3006", "onedir-3006", "stable-3006-1", "latest", "default"]' | ||
arch: | ||
name: Arch | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: arch | ||
display-name: Arch | ||
timeout: 20 | ||
instances: '["git-master", "latest", "default"]' | ||
centos-7: | ||
name: CentOS 7 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: centos-7 | ||
display-name: CentOS 7 | ||
timeout: 20 | ||
instances: '["old-stable-3003", "old-stable-3004", "old-stable-3005", "stable-3005", "onedir-3005", "stable-3005-1", "stable-3006", "onedir-3006", "stable-3006-1", "latest", "default"]' | ||
centos-stream8: | ||
name: CentOS Stream 8 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: centos-stream8 | ||
display-name: CentOS Stream 8 | ||
timeout: 20 | ||
instances: '["old-stable-3003", "old-stable-3004", "old-stable-3005", "stable-3005", "onedir-3005", "stable-3005-1", "stable-3006", "onedir-3006", "stable-3006-1", "latest", "default"]' | ||
centos-stream9: | ||
name: CentOS Stream 9 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: centos-stream9 | ||
display-name: CentOS Stream 9 | ||
timeout: 20 | ||
instances: '["git-3005", "stable-3006", "onedir-3006", "stable-3006-1", "git-master", "latest", "default"]' | ||
debian-10: | ||
name: Debian 10 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: debian-10 | ||
display-name: Debian 10 | ||
timeout: 20 | ||
instances: '["old-stable-3003", "old-stable-3004", "old-stable-3005", "stable-3005", "onedir-3005", "stable-3005-1", "stable-3006", "onedir-3006", "stable-3006-1", "latest", "default"]' | ||
debian-11: | ||
name: Debian 11 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: debian-11 | ||
display-name: Debian 11 | ||
timeout: 20 | ||
instances: '["old-stable-3004", "old-stable-3005", "stable-3005", "onedir-3005", "stable-3005-1", "stable-3006", "onedir-3006", "stable-3006-1", "git-master", "latest", "default"]' | ||
fedora-36: | ||
name: Fedora 36 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: fedora-36 | ||
display-name: Fedora 36 | ||
timeout: 20 | ||
instances: '["stable-3006", "onedir-3006", "stable-3006-1", "git-master", "latest", "default"]' | ||
fedora-37: | ||
name: Fedora 37 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: fedora-37 | ||
display-name: Fedora 37 | ||
timeout: 20 | ||
instances: '["stable-3006", "onedir-3006", "stable-3006-1", "latest", "default"]' | ||
fedora-38: | ||
name: Fedora 38 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: fedora-38 | ||
display-name: Fedora 38 | ||
timeout: 20 | ||
instances: '["stable-3006", "onedir-3006", "stable-3006-1", "latest", "default"]' | ||
gentoo: | ||
name: Gentoo | ||
if: github.event_name == 'push' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: gentoo | ||
display-name: Gentoo | ||
timeout: 90 | ||
instances: '["git-master"]' | ||
gentoo-systemd: | ||
name: Gentoo (systemd) | ||
if: github.event_name == 'push' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: gentoo-systemd | ||
display-name: Gentoo (systemd) | ||
timeout: 90 | ||
instances: '["git-master"]' | ||
opensuse-15: | ||
name: Opensuse 15 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: opensuse-15 | ||
display-name: Opensuse 15 | ||
timeout: 20 | ||
instances: '["latest", "default"]' | ||
opensuse-tumbleweed: | ||
name: Opensuse Tumbleweed | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: opensuse-tumbleweed | ||
display-name: Opensuse Tumbleweed | ||
timeout: 20 | ||
instances: '["git-master", "latest", "default"]' | ||
oraclelinux-7: | ||
name: Oracle Linux 7 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: oraclelinux-7 | ||
display-name: Oracle Linux 7 | ||
timeout: 20 | ||
instances: '["old-stable-3003", "old-stable-3004", "old-stable-3005", "stable-3005", "onedir-3005", "stable-3005-1", "stable-3006", "onedir-3006", "stable-3006-1", "latest", "default"]' | ||
oraclelinux-8: | ||
name: Oracle Linux 8 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: oraclelinux-8 | ||
display-name: Oracle Linux 8 | ||
timeout: 20 | ||
instances: '["old-stable-3003", "old-stable-3004", "old-stable-3005", "stable-3005", "onedir-3005", "stable-3005-1", "stable-3006", "onedir-3006", "stable-3006-1", "latest", "default"]' | ||
photon-3: | ||
name: Photon OS 3 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: photon-3 | ||
display-name: Photon OS 3 | ||
timeout: 20 | ||
instances: '["stable-3006", "onedir-3006", "stable-3006-1", "latest", "default"]' | ||
photon-4: | ||
name: Photon OS 4 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: photon-4 | ||
display-name: Photon OS 4 | ||
timeout: 20 | ||
instances: '["stable-3006", "onedir-3006", "stable-3006-1", "git-master", "latest", "default"]' | ||
rockylinux-8: | ||
name: Rocky Linux 8 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: rockylinux-8 | ||
display-name: Rocky Linux 8 | ||
timeout: 20 | ||
instances: '["old-stable-3004", "old-stable-3005", "stable-3005", "onedir-3005", "stable-3005-1", "stable-3006", "onedir-3006", "stable-3006-1", "latest", "default"]' | ||
rockylinux-9: | ||
name: Rocky Linux 9 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: rockylinux-9 | ||
display-name: Rocky Linux 9 | ||
timeout: 20 | ||
instances: '["git-3005", "stable-3006", "onedir-3006", "stable-3006-1", "git-master", "latest", "default"]' | ||
ubuntu-2004: | ||
name: Ubuntu 20.04 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: ubuntu-2004 | ||
display-name: Ubuntu 20.04 | ||
timeout: 20 | ||
instances: '["old-stable-3003", "old-stable-3004", "old-stable-3005", "stable-3005", "onedir-3005", "stable-3005-1", "stable-3006", "onedir-3006", "stable-3006-1", "git-master", "latest", "default"]' | ||
ubuntu-2204: | ||
name: Ubuntu 22.04 | ||
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' | ||
uses: ./.github/workflows/test-linux.yml | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
with: | ||
distro-slug: ubuntu-2204 | ||
display-name: Ubuntu 22.04 | ||
timeout: 20 | ||
instances: '["stable-3005", "onedir-3005", "stable-3005-1", "stable-3006", "onedir-3006", "stable-3006-1", "git-master", "latest", "default"]' | ||
set-pipeline-exit-status: | ||
# This step is just so we can make github require this step, to pass checks | ||
# on a pull request instead of requiring all | ||
name: Set the ${{ github.workflow }} Pipeline Exit Status | ||
runs-on: ubuntu-latest | ||
needs: | ||
- lint | ||
- generate-actions-workflow | ||
- freebsd-131 | ||
- freebsd-123 | ||
- openbsd-7 | ||
- macos-11 | ||
- macos-12 | ||
- windows-2019 | ||
- windows-2022 | ||
- almalinux-8 | ||
- almalinux-9 | ||
- amazon-2 | ||
- arch | ||
- centos-7 | ||
- centos-stream8 | ||
- centos-stream9 | ||
- debian-10 | ||
- debian-11 | ||
- fedora-36 | ||
- fedora-37 | ||
- fedora-38 | ||
- gentoo | ||
- gentoo-systemd | ||
- opensuse-15 | ||
- opensuse-tumbleweed | ||
- oraclelinux-7 | ||
- oraclelinux-8 | ||
- photon-3 | ||
- photon-4 | ||
- rockylinux-8 | ||
- rockylinux-9 | ||
- ubuntu-2004 | ||
- ubuntu-2204 | ||
if: always() | ||
steps: | ||
- name: Download Exit Status Files | ||
if: always() | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: exitstatus | ||
path: exitstatus | ||
- name: Delete Exit Status Artifacts | ||
if: always() | ||
uses: geekyeggo/delete-artifact@v1 | ||
with: | ||
name: exitstatus | ||
failOnError: false | ||
- name: Set Pipeline Exit Status | ||
run: | | ||
grep -RE 'failure|cancelled' exitstatus/ && exit 1 || exit 0 | ||
- name: Done | ||
if: always() | ||
run: | ||
echo "All worflows finished" |