Moving quick start scripts to bootstrap repo. #646
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 | |
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" |