Merge pull request #1830 from krionbsd/new_rel

2022.05.19 release
This commit is contained in:
Kirill Ponomarev 2022-05-19 15:25:31 +02:00 committed by GitHub
commit 8c2c3e7baa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 548 additions and 3412 deletions

132
.github/workflows/kitchen.macos.yml vendored Normal file
View file

@ -0,0 +1,132 @@
# yamllint disable rule:line-length
---
name: 'Kitchen (MacOS)'
'on': ['push', 'pull_request']
env:
KITCHEN_LOCAL_YAML: 'kitchen.macos.yml'
jobs:
generate-actions-workflow:
name: 'Generate The Actions Workflow'
runs-on: 'ubuntu-latest'
steps:
- uses: 'actions/checkout@v1'
- name: 'Set up Python 3.7'
uses: 'actions/setup-python@v1'
with:
python-version: 3.7
- name: 'Install Pre-Commit'
run: |
pip install -U pip
pip install pre-commit
pre-commit install
- name: 'Generate Workflow Actions'
run: |
pre-commit run -av generate-actions-workflow
lint:
name: 'Lint'
runs-on: 'ubuntu-latest'
needs: 'generate-actions-workflow'
container: 'koalaman/shellcheck-alpine:v0.6.0'
steps:
- uses: 'actions/checkout@v1'
- name: 'ShellCheck'
run: |
shellcheck -s sh -f tty bootstrap-salt.sh
test-12:
runs-on: 'macos-12'
timeout-minutes: 20
needs: 'lint'
strategy:
fail-fast: false
matrix:
instance:
- latest-macos-12
- py3-stable-3004-macos-12
- py3-stable-3003-macos-12
- py3-stable-3002-macos-12
steps:
- name: 'Check out code'
uses: 'actions/checkout@v2'
- name: 'Set up Bundler cache'
uses: 'actions/cache@v1'
with:
path: 'vendor/bundle'
key: "${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}"
restore-keys: "${{ runner.os }}-gems-"
- name: 'Run Bundler'
run: |
ruby --version
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
- name: 'Install Python Dependencies'
run: |
pip3 install -U pip
pip3 install -r tests/requirements.txt
- name: 'Run Test Kitchen'
run: 'bundle exec kitchen test ${{ matrix.instance }}'
test-11:
runs-on: 'macos-11'
timeout-minutes: 20
needs: 'lint'
strategy:
fail-fast: false
matrix:
instance:
- latest-macos-11
- py3-stable-3004-macos-11
- py3-stable-3003-macos-11
- py3-stable-3002-macos-11
steps:
- name: 'Check out code'
uses: 'actions/checkout@v2'
- name: 'Set up Bundler cache'
uses: 'actions/cache@v1'
with:
path: 'vendor/bundle'
key: "${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}"
restore-keys: "${{ runner.os }}-gems-"
- name: 'Run Bundler'
run: |
ruby --version
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
- name: 'Install Python Dependencies'
run: |
pip3 install -U pip
pip3 install -r tests/requirements.txt
- name: 'Run Test Kitchen'
run: 'bundle exec kitchen test ${{ matrix.instance }}'
test-1015:
runs-on: 'macos-10.15'
timeout-minutes: 20
needs: 'lint'
strategy:
fail-fast: false
matrix:
instance:
- latest-macos-1015
- py3-stable-3004-macos-1015
- py3-stable-3003-macos-1015
- py3-stable-3002-macos-1015
steps:
- name: 'Check out code'
uses: 'actions/checkout@v2'
- name: 'Set up Bundler cache'
uses: 'actions/cache@v1'
with:
path: 'vendor/bundle'
key: "${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}"
restore-keys: "${{ runner.os }}-gems-"
- name: 'Run Bundler'
run: |
ruby --version
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
- name: 'Install Python Dependencies'
run: |
pip3 install -U pip
pip3 install -r tests/requirements.txt
- name: 'Run Test Kitchen'
run: 'bundle exec kitchen test ${{ matrix.instance }}'

View file

@ -41,15 +41,6 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
instance: instance:
- py3-git-3002-freebsd-130
- py3-git-3002-freebsd-123
# - py3-git-3002-openbsd-6
- py3-git-3003-freebsd-130
- py3-git-3003-freebsd-123
# - py3-git-3003-openbsd-6
- py3-git-3004-freebsd-130
- py3-git-3004-freebsd-123
# - py3-git-3004-openbsd-6
- py3-git-master-freebsd-130 - py3-git-master-freebsd-130
- py3-git-master-freebsd-123 - py3-git-master-freebsd-123
# - py3-git-master-openbsd-6 # - py3-git-master-openbsd-6

View file

@ -1,3 +1,4 @@
# yamllint disable rule:line-length
--- ---
name: 'Kitchen (Windows)' name: 'Kitchen (Windows)'
'on': ['push', 'pull_request'] 'on': ['push', 'pull_request']

View file

@ -1,289 +1,16 @@
# DO NOT EDIT THIS FILE DIRECTLY! # DO NOT EDIT THIS FILE DIRECTLY!
# #
# This file was generated by .github/workflows/templates/generate.py # This file was generated by .github/workflows/templates/generate.py
#
# yamllint disable rule:line-length rule:empty-lines
---
name: Branch Testing name: Branch Testing
on: [push] 'on': [push]
jobs: jobs:
py3-stable-3002-gentoo:
name: Gentoo v3002 Py3 Stable
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create py3-stable-3002-gentoo || bundle exec kitchen create py3-stable-3002-gentoo
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify py3-stable-3002-gentoo
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy py3-stable-3002-gentoo
py3-git-3002-gentoo:
name: Gentoo v3002 Py3 Git
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create py3-git-3002-gentoo || bundle exec kitchen create py3-git-3002-gentoo
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify py3-git-3002-gentoo
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy py3-git-3002-gentoo
py3-stable-3003-gentoo:
name: Gentoo v3003 Py3 Stable
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create py3-stable-3003-gentoo || bundle exec kitchen create py3-stable-3003-gentoo
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify py3-stable-3003-gentoo
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy py3-stable-3003-gentoo
py3-git-3003-gentoo:
name: Gentoo v3003 Py3 Git
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create py3-git-3003-gentoo || bundle exec kitchen create py3-git-3003-gentoo
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify py3-git-3003-gentoo
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy py3-git-3003-gentoo
py3-stable-3004-gentoo:
name: Gentoo v3004 Py3 Stable
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create py3-stable-3004-gentoo || bundle exec kitchen create py3-stable-3004-gentoo
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify py3-stable-3004-gentoo
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy py3-stable-3004-gentoo
py3-git-3004-gentoo:
name: Gentoo v3004 Py3 Git
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create py3-git-3004-gentoo || bundle exec kitchen create py3-git-3004-gentoo
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify py3-git-3004-gentoo
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy py3-git-3004-gentoo
py3-git-master-gentoo: py3-git-master-gentoo:
name: Gentoo Master Py3 Git name: Gentoo Master Py3 Git
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -376,282 +103,6 @@ jobs:
bundle exec kitchen destroy latest-gentoo bundle exec kitchen destroy latest-gentoo
py3-stable-3002-gentoo-systemd:
name: Gentoo (systemd) v3002 Py3 Stable
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create py3-stable-3002-gentoo-systemd || bundle exec kitchen create py3-stable-3002-gentoo-systemd
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify py3-stable-3002-gentoo-systemd
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy py3-stable-3002-gentoo-systemd
py3-git-3002-gentoo-systemd:
name: Gentoo (systemd) v3002 Py3 Git
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create py3-git-3002-gentoo-systemd || bundle exec kitchen create py3-git-3002-gentoo-systemd
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify py3-git-3002-gentoo-systemd
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy py3-git-3002-gentoo-systemd
py3-stable-3003-gentoo-systemd:
name: Gentoo (systemd) v3003 Py3 Stable
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create py3-stable-3003-gentoo-systemd || bundle exec kitchen create py3-stable-3003-gentoo-systemd
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify py3-stable-3003-gentoo-systemd
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy py3-stable-3003-gentoo-systemd
py3-git-3003-gentoo-systemd:
name: Gentoo (systemd) v3003 Py3 Git
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create py3-git-3003-gentoo-systemd || bundle exec kitchen create py3-git-3003-gentoo-systemd
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify py3-git-3003-gentoo-systemd
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy py3-git-3003-gentoo-systemd
py3-stable-3004-gentoo-systemd:
name: Gentoo (systemd) v3004 Py3 Stable
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create py3-stable-3004-gentoo-systemd || bundle exec kitchen create py3-stable-3004-gentoo-systemd
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify py3-stable-3004-gentoo-systemd
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy py3-stable-3004-gentoo-systemd
py3-git-3004-gentoo-systemd:
name: Gentoo (systemd) v3004 Py3 Git
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v1
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install Bundler
run: |
gem install bundler
- name: Setup Bundle
run: |
bundle install --with docker --without opennebula ec2 windows vagrant
- name: Set up Python 3.7
uses: actions/setup-python@v1
with:
python-version: 3.7
- name: Install Python Dependencies
run: |
pip install -U pip
pip install -r tests/requirements.txt
- name: Create Test Container
run: |
bundle exec kitchen create py3-git-3004-gentoo-systemd || bundle exec kitchen create py3-git-3004-gentoo-systemd
- name: Test Bootstrap In Test Container
run: |
bundle exec kitchen verify py3-git-3004-gentoo-systemd
- name: Destroy Test Container
if: always()
run: |
bundle exec kitchen destroy py3-git-3004-gentoo-systemd
py3-git-master-gentoo-systemd: py3-git-master-gentoo-systemd:
name: Gentoo (systemd) Master Py3 Git name: Gentoo (systemd) Master Py3 Git
runs-on: ubuntu-latest runs-on: ubuntu-latest

File diff suppressed because it is too large Load diff

View file

@ -16,6 +16,7 @@ LINUX_DISTROS = [
"debian-9", "debian-9",
"fedora-34", "fedora-34",
"fedora-35", "fedora-35",
"fedora-36",
"gentoo", "gentoo",
"gentoo-systemd", "gentoo-systemd",
"opensuse-15", "opensuse-15",
@ -23,16 +24,17 @@ LINUX_DISTROS = [
"oraclelinux-7", "oraclelinux-7",
"oraclelinux-8", "oraclelinux-8",
"rockylinux-8", "rockylinux-8",
"ubuntu-1604",
"ubuntu-1804", "ubuntu-1804",
"ubuntu-2004", "ubuntu-2004",
"ubuntu-2110", "ubuntu-2110",
"ubuntu-2204",
] ]
OSX = WINDOWS = [] OSX = WINDOWS = []
STABLE_DISTROS = [ STABLE_DISTROS = [
"almalinux-8", "almalinux-8",
"amazon-2", "amazon-2",
"arch",
"centos-7", "centos-7",
"centos-stream8", "centos-stream8",
"debian-10", "debian-10",
@ -40,81 +42,128 @@ STABLE_DISTROS = [
"debian-9", "debian-9",
"fedora-34", "fedora-34",
"fedora-35", "fedora-35",
"fedora-36",
"gentoo", "gentoo",
"gentoo-systemd", "gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"oraclelinux-7", "oraclelinux-7",
"oraclelinux-8", "oraclelinux-8",
"rockylinux-8", "rockylinux-8",
"ubuntu-1604",
"ubuntu-1804", "ubuntu-1804",
"ubuntu-2004", "ubuntu-2004",
"ubuntu-2110", "ubuntu-2110",
"ubuntu-2204",
] ]
BLACKLIST_3002 = [ BLACKLIST_3002 = [
"almalinux-8", "almalinux-8",
"centos-stream8", "arch",
"rockylinux-8",
"debian-11",
]
BLACKLIST_3002_0 = [
"almalinux-8",
"amazon-2",
"centos-stream8", "centos-stream8",
"debian-11", "debian-11",
"fedora-34",
"fedora-35",
"fedora-36",
"gentoo", "gentoo",
"gentoo-systemd", "gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"rockylinux-8", "rockylinux-8",
"ubuntu-2204",
]
BLACKLIST_GIT_3002 = [
"almalinux-8",
"amazon-2",
"arch",
"centos-stream8",
"debian-10",
"debian-11",
"fedora-34",
"fedora-35",
"fedora-36",
"gentoo",
"gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"rockylinux-8",
"ubuntu-2004",
"ubuntu-2110", "ubuntu-2110",
"ubuntu-2204",
] ]
BLACKLIST_3003 = [ BLACKLIST_3003 = [
"rockylinux-8", "arch",
"ubuntu-1604",
"debian-11", "debian-11",
] "fedora-34",
"fedora-35",
BLACKLIST_3003_0 = [ "fedora-36",
"amazon-2",
"gentoo", "gentoo",
"gentoo-systemd", "gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"rockylinux-8", "rockylinux-8",
"ubuntu-1604", "ubuntu-2204",
"debian-11" ]
BLACKLIST_GIT_3003 = [
"amazon-2",
"arch",
"debian-10",
"debian-11",
"fedora-34",
"fedora-35",
"fedora-36",
"gentoo",
"gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"rockylinux-8",
"ubuntu-2004",
"ubuntu-2110",
"ubuntu-2204",
] ]
BLACKLIST_3004 = [ BLACKLIST_3004 = [
"ubuntu-1604",
"arch", "arch",
] "fedora-34",
"fedora-35",
BLACKLIST_3004_0 = [ "fedora-36",
"amazon-2",
"gentoo", "gentoo",
"gentoo-systemd", "gentoo-systemd",
"ubuntu-1604", "opensuse-15",
"opensuse-tumbleweed",
]
BLACKLIST_GIT_3004 = [
"amazon-2",
"arch", "arch",
"debian-10",
"debian-11",
"fedora-34",
"fedora-35",
"fedora-36",
"gentoo",
"gentoo-systemd",
"opensuse-15",
"opensuse-tumbleweed",
"ubuntu-2004",
"ubuntu-2110",
"ubuntu-2204",
] ]
SALT_BRANCHES = [ SALT_BRANCHES = [
"3002", "3002",
"3002-0",
"3003", "3003",
"3003-0",
"3004", "3004",
"3004-0",
"master", "master",
"latest", "latest",
] ]
BRANCH_DISPLAY_NAMES = { BRANCH_DISPLAY_NAMES = {
"3002": "v3002", "3002": "v3002",
"3002-0": "v3002.0",
"3003": "v3003", "3003": "v3003",
"3003-0": "v3003.0",
"3004": "v3004", "3004": "v3004",
"3004-0": "v3004.0",
"master": "Master", "master": "Master",
"latest": "Latest", "latest": "Latest",
} }
@ -134,6 +183,7 @@ DISTRO_DISPLAY_NAMES = {
"debian-9": "Debian 9", "debian-9": "Debian 9",
"fedora-34": "Fedora 34", "fedora-34": "Fedora 34",
"fedora-35": "Fedora 35", "fedora-35": "Fedora 35",
"fedora-36": "Fedora 36",
"gentoo": "Gentoo", "gentoo": "Gentoo",
"gentoo-systemd": "Gentoo (systemd)", "gentoo-systemd": "Gentoo (systemd)",
"opensuse-15": "Opensuse 15", "opensuse-15": "Opensuse 15",
@ -141,10 +191,10 @@ DISTRO_DISPLAY_NAMES = {
"oraclelinux-7": "Oracle Linux 7", "oraclelinux-7": "Oracle Linux 7",
"oraclelinux-8": "Oracle Linux 8", "oraclelinux-8": "Oracle Linux 8",
"rockylinux-8": "Rocky Linux 8", "rockylinux-8": "Rocky Linux 8",
"ubuntu-1604": "Ubuntu 16.04",
"ubuntu-1804": "Ubuntu 18.04", "ubuntu-1804": "Ubuntu 18.04",
"ubuntu-2004": "Ubuntu 20.04", "ubuntu-2004": "Ubuntu 20.04",
"ubuntu-2110": "Ubuntu 21.10", "ubuntu-2110": "Ubuntu 21.10",
"ubuntu-2204": "Ubuntu 22.04",
} }
TIMEOUT_DEFAULT = 20 TIMEOUT_DEFAULT = 20
@ -223,28 +273,28 @@ def generate_test_jobs():
# Fedora does not keep old builds around # Fedora does not keep old builds around
continue continue
BLACKLIST = {
"3002": BLACKLIST_3002,
"3003": BLACKLIST_3003,
"3004": BLACKLIST_3004,
}
if bootstrap_type == "git": if bootstrap_type == "git":
BLACKLIST = {
"3002": BLACKLIST_GIT_3002,
"3003": BLACKLIST_GIT_3003,
"3004": BLACKLIST_GIT_3004,
}
# .0 versions are a virtual version for pinning to the first point release of a major release, such as 3002, there is no git version. # .0 versions are a virtual version for pinning to the first point release of a major release, such as 3002, there is no git version.
if branch.endswith("-0"): if branch.endswith("-0"):
continue continue
if branch == "3002" and distro in BLACKLIST_3002: if (
branch in ("3002", "3003", "3004")
and distro in BLACKLIST[branch]
):
continue continue
if branch == "3002-0" and distro in BLACKLIST_3002_0:
continue
if branch == "3003" and distro in BLACKLIST_3003:
continue
if branch == "3003-0" and distro in BLACKLIST_3003_0:
continue
if branch == "3004" and distro in BLACKLIST_3004:
continue
if branch == "3004-0" and distro in BLACKLIST_3004_0:
continue
if distro in LINUX_DISTROS: if distro in LINUX_DISTROS:
template = "linux.yml" template = "linux.yml"
elif distro in OSX: elif distro in OSX:
@ -289,7 +339,9 @@ def generate_test_jobs():
rfh.read() rfh.read()
.format( .format(
jobs="{pre_commit}{lint}{test}".format( jobs="{pre_commit}{lint}{test}".format(
lint=lint_job, test=test_jobs, pre_commit=pre_commit_job, lint=lint_job,
test=test_jobs,
pre_commit=pre_commit_job,
), ),
on="push, pull_request", on="push, pull_request",
name="Testing", name="Testing",
@ -304,7 +356,9 @@ def generate_test_jobs():
"{}\n".format( "{}\n".format(
rfh.read() rfh.read()
.format( .format(
jobs="{test}".format(test=branch_only_test_jobs,), jobs="{test}".format(
test=branch_only_test_jobs,
),
on="push", on="push",
name="Branch Testing", name="Branch Testing",
) )

View file

@ -1,10 +1,13 @@
# DO NOT EDIT THIS FILE DIRECTLY! # DO NOT EDIT THIS FILE DIRECTLY!
# #
# This file was generated by .github/workflows/templates/generate.py # This file was generated by .github/workflows/templates/generate.py
#
# yamllint disable rule:line-length rule:empty-lines
---
name: {name} name: {name}
on: [{on}] 'on': [{on}]
jobs: jobs:
{jobs} {jobs}

View file

@ -12,7 +12,7 @@ repos:
- id: end-of-file-fixer # Makes sure files end in a newline and only a newline. - id: end-of-file-fixer # Makes sure files end in a newline and only a newline.
- repo: https://github.com/psf/black - repo: https://github.com/psf/black
rev: 19.10b0 rev: 22.3.0
hooks: hooks:
- id: black - id: black

View file

@ -32,6 +32,8 @@ sum** of the downloaded ``bootstrap-salt.sh`` file.
The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is: The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is:
=======
- 2022.03.15: ``8f65952c3435f441e7f793941d5162d3ec2033a9ef82722ff1da67a2ef860a2f``
- 2021.09.17: ``090d652cd6290debce0e3a4eded65086a4272e69446e711eb26f87160593b6a2`` - 2021.09.17: ``090d652cd6290debce0e3a4eded65086a4272e69446e711eb26f87160593b6a2``
- 2021.09.14: ``30fdcba972f449630b4f13492cb5525e69e08fa2cdb66a6dc78f1536ad279e52`` - 2021.09.14: ``30fdcba972f449630b4f13492cb5525e69e08fa2cdb66a6dc78f1536ad279e52``
- 2021.08.19: ``ee40a9d8d057cce88a288fc1cb94b1d31408a61d262db6f77b34ad63d66f0806`` - 2021.08.19: ``ee40a9d8d057cce88a288fc1cb94b1d31408a61d262db6f77b34ad63d66f0806``

View file

@ -4,12 +4,12 @@
- Go through the changes since last release, add them to changelog. - Go through the changes since last release, add them to changelog.
- Add any new authors to the AUTHORS file. - Add any new authors to the AUTHORS file.
- If there's a new Salt release(major), update the script to add support for it. - If there's a new Salt release(major), update the script to add support for it.
- Bump version for release - Bump version for release.
- Open PR against develop with these changes. - Open PR against develop with these changes.
- Once the above PR is merged, open a PR against stable with the changes from develop - Once the above PR is merged, open a PR against stable with the changes from develop.
- Once the above PR is merged, wait until an automatic PR is opened against develop which updates the checksums. - Once the above PR is merged, wait until an automatic PR is opened against stable which updates the checksums.
- Once the above PR is merged, tag the release `v{version-here}` and push the tag. - Once the above PR is merged, tag the release `v{version-here}` and push the tag.
- Wait until an automatic PR is opened against the develop branch updating the release informtion. Merge it. - Wait until an automatic PR is opened against the develop branch updating the checksums in `README.rst`. Merge it.
- Check that an automated PR was opened against the salt repo updating the bootstrap script. - Check that an automated PR was opened against the salt repo updating the bootstrap script, located in `salt/cloud/deploy/bootstrap-salt.sh`
- Victory! - Victory!

View file

@ -1,11 +1,11 @@
<# <#
.SYNOPSIS .SYNOPSIS
A simple Powershell script to download and install a salt minion on windows. A simple Powershell script to download and install a Salt minion on Windows.
.DESCRIPTION .DESCRIPTION
The script will download the official salt package from saltstack. It will The script will download the official Salt package from SaltProject. It will
install a specific package version and accept parameters for the master and install a specific package version and accept parameters for the master and
minion ids. Finally, it can stop and set the windows service to "manual" for minion ids. Finally, it can stop and set the Windows service to "manual" for
local testing. local testing.
.EXAMPLE .EXAMPLE
@ -18,8 +18,9 @@
.EXAMPLE .EXAMPLE
./bootstrap-salt.ps1 -pythonVersion 3 ./bootstrap-salt.ps1 -pythonVersion 3
Specifies the Python version of the installer. Can be "2" or "3". Defaults to "2". Specifies the Python version of the installer. Can be "2" or "3". Defaults
Python 3 installers are only available for Salt 2017.7.0 and newer. to "2". Python 3 installers are only available for Salt 2017.7.0 and newer.
Starting with Python 3002 only Python 3 installers are available.
.EXAMPLE .EXAMPLE
./bootstrap-salt.ps1 -runservice false ./bootstrap-salt.ps1 -runservice false
@ -71,36 +72,36 @@
#> #>
#=============================================================================== #===============================================================================
# Commandlet Binding # Bind Parameters
#=============================================================================== #===============================================================================
[CmdletBinding()] [CmdletBinding()]
Param( param(
[Parameter(Mandatory=$false,ValueFromPipeline=$true)] [Parameter(Mandatory=$false, ValueFromPipeline=$True)]
# Doesn't support versions prior to "YYYY.M.R-B" # Doesn't support versions prior to "YYYY.M.R-B"
# Supports new version and latest # Supports new version and latest
# Option 1 means case insensitive # Option 1 means case insensitive
[ValidatePattern('^(\d{4}(\.\d{1,2}){0,2}(\-\d{1})?)|(latest)$', Options=1)] [ValidatePattern('^(\d{4}(\.\d{1,2}){0,2}(\-\d{1})?)|(latest)$', Options=1)]
[string]$version = '', [string]$Version = '',
[Parameter(Mandatory=$false,ValueFromPipeline=$true)] [Parameter(Mandatory=$false, ValueFromPipeline=$True)]
# Doesn't support Python versions prior to "2017.7.0" # Doesn't support Python versions prior to "2017.7.0"
[ValidateSet("2","3")] [ValidateSet("2","3")]
[string]$pythonVersion = "3", [string]$PythonVersion = "3",
[Parameter(Mandatory=$false,ValueFromPipeline=$true)] [Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[ValidateSet("true","false")] [ValidateSet("true","false")]
[string]$runservice = "true", [string]$RunService = "true",
[Parameter(Mandatory=$false,ValueFromPipeline=$true)] [Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[string]$minion = "not-specified", [string]$Minion = "not-specified",
[Parameter(Mandatory=$false,ValueFromPipeline=$true)] [Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[string]$master = "not-specified", [string]$Master = "not-specified",
[Parameter(Mandatory=$false,ValueFromPipeline=$true)] [Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[string]$repourl= "https://repo.saltproject.io/windows", [string]$RepoUrl= "https://repo.saltproject.io/windows",
[Parameter(Mandatory=$false,ValueFromPipeline=$true)] [Parameter(Mandatory=$false, ValueFromPipeline=$True)]
[switch]$ConfigureOnly [switch]$ConfigureOnly
) )
@ -125,8 +126,8 @@ function Get-IsUacEnabled
#=============================================================================== #===============================================================================
# Check for Elevated Privileges # Check for Elevated Privileges
#=============================================================================== #===============================================================================
If (!(Get-IsAdministrator)) { if (!(Get-IsAdministrator)) {
If (Get-IsUacEnabled) { if (Get-IsUacEnabled) {
# We are not running "as Administrator" - so relaunch as administrator # We are not running "as Administrator" - so relaunch as administrator
# Create a new process object that starts PowerShell # Create a new process object that starts PowerShell
$newProcess = new-object System.Diagnostics.ProcessStartInfo "PowerShell"; $newProcess = new-object System.Diagnostics.ProcessStartInfo "PowerShell";
@ -149,10 +150,10 @@ If (!(Get-IsAdministrator)) {
[System.Diagnostics.Process]::Start($newProcess); [System.Diagnostics.Process]::Start($newProcess);
# Exit from the current, unelevated, process # Exit from the current, unelevated, process
Exit exit
} }
Else { else {
Throw "You must be administrator to run this script" throw "You must be administrator to run this script"
} }
} }
@ -166,15 +167,15 @@ Write-Verbose "master: $master"
Write-Verbose "minion: $minion" Write-Verbose "minion: $minion"
Write-Verbose "repourl: $repourl" Write-Verbose "repourl: $repourl"
If ($runservice.ToLower() -eq "true") { if ($runservice.ToLower() -eq "true") {
Write-Verbose "Windows service will be set to run" Write-Verbose "Windows service will be set to run"
[bool]$runservice = $True [bool]$runservice = $True
} }
ElseIf ($runservice.ToLower() -eq "false") { elseif ($runservice.ToLower() -eq "false") {
Write-Verbose "Windows service will be stopped and set to manual" Write-Verbose "Windows service will be stopped and set to manual"
[bool]$runservice = $False [bool]$runservice = $False
} }
Else { else {
# Param passed in wasn't clear so defaulting to true. # Param passed in wasn't clear so defaulting to true.
Write-Verbose "Windows service defaulting to run automatically" Write-Verbose "Windows service defaulting to run automatically"
[bool]$runservice = $True [bool]$runservice = $True
@ -186,22 +187,28 @@ Else {
$ConfiguredAnything = $False $ConfiguredAnything = $False
$RootDir = "C:\salt"
$SaltRegKey = "HKLM:\SOFTWARE\Salt Project\Salt" $SaltRegKey = "HKLM:\SOFTWARE\Salt Project\Salt"
$RootDir = If ((Get-ItemProperty $SaltRegKey).root_dir -ne $null) { if (Test-Path -Path $SaltRegKey) {
(Get-ItemProperty $SaltRegKey).root_dir if ($null -ne (Get-ItemProperty $SaltRegKey).root_dir) {
} Else { $RootDir = (Get-ItemProperty $SaltRegKey).root_dir
"C:\salt" }
} }
$ConfDir = "$RootDir\conf" $ConfDir = "$RootDir\conf"
$PkiDir = "$ConfDir\pki\minion" $PkiDir = "$ConfDir\pki\minion"
Write-Verbose "ConfDir: $ConfDir"
# Create C:\tmp\ # Create C:\tmp\
New-Item C:\tmp\ -ItemType directory -Force | Out-Null New-Item C:\tmp\ -ItemType directory -Force | Out-Null
# Copy Vagrant Files to their proper location. Vagrant files will be placed #===============================================================================
# in C:\tmp # Copy Vagrant Files to their proper location.
#===============================================================================
# Vagrant files will be placed in C:\tmp
# Check if minion keys have been uploaded, copy to correct location # Check if minion keys have been uploaded, copy to correct location
If (Test-Path C:\tmp\minion.pem) { if (Test-Path C:\tmp\minion.pem) {
New-Item $PkiDir -ItemType Directory -Force | Out-Null New-Item $PkiDir -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\tmp\minion.pem -Destination $PkiDir -Force | Out-Null Copy-Item -Path C:\tmp\minion.pem -Destination $PkiDir -Force | Out-Null
Copy-Item -Path C:\tmp\minion.pub -Destination $PkiDir -Force | Out-Null Copy-Item -Path C:\tmp\minion.pub -Destination $PkiDir -Force | Out-Null
@ -211,20 +218,20 @@ If (Test-Path C:\tmp\minion.pem) {
# Check if minion config has been uploaded # Check if minion config has been uploaded
# This should be done before the installer is run so that it can be updated with # This should be done before the installer is run so that it can be updated with
# id: and master: settings when the installer runs # id: and master: settings when the installer runs
If (Test-Path C:\tmp\minion) { if (Test-Path C:\tmp\minion) {
New-Item $ConfDir -ItemType Directory -Force | Out-Null New-Item $ConfDir -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\tmp\minion -Destination $ConfDir -Force | Out-Null Copy-Item -Path C:\tmp\minion -Destination $ConfDir -Force | Out-Null
$ConfiguredAnything = $True $ConfiguredAnything = $True
} }
# Check if grains config has been uploaded # Check if grains config has been uploaded
If (Test-Path C:\tmp\grains) { if (Test-Path C:\tmp\grains) {
New-Item $ConfDir -ItemType Directory -Force | Out-Null New-Item $ConfDir -ItemType Directory -Force | Out-Null
Copy-Item -Path C:\tmp\grains -Destination $ConfDir -Force | Out-Null Copy-Item -Path C:\tmp\grains -Destination $ConfDir -Force | Out-Null
$ConfiguredAnything = $True $ConfiguredAnything = $True
} }
If ($ConfigureOnly -and !$ConfiguredAnything) { if ($ConfigureOnly -and !$ConfiguredAnything) {
Write-Output "No configuration or keys were copied over. No configuration was done!" Write-Output "No configuration or keys were copied over. No configuration was done!"
exit 0 exit 0
} }
@ -232,31 +239,30 @@ If ($ConfigureOnly -and !$ConfiguredAnything) {
#=============================================================================== #===============================================================================
# Detect architecture # Detect architecture
#=============================================================================== #===============================================================================
If ([IntPtr]::Size -eq 4) { if ([IntPtr]::Size -eq 4) {
$arch = "x86" $arch = "x86"
} } else {
Else {
$arch = "AMD64" $arch = "AMD64"
} }
#=============================================================================== #===============================================================================
# Use version "Latest" if no version is passed # Use version "Latest" if no version is passed
#=============================================================================== #===============================================================================
If ((!$version) -or ($version.ToLower() -eq 'latest')){ if ((!$version) -or ($version.ToLower() -eq 'latest')){
$versionSection = "Latest-Py$pythonVersion" $versionSection = "Latest-Py$PythonVersion"
} else { } else {
$versionSection = $version $versionSection = $version
$year = $version.Substring(0, 4) $year = $version.Substring(0, 4)
If ([int]$year -ge 2017) { if ([int]$year -ge 2017) {
If ($pythonVersion -eq "3") { if ($PythonVersion -eq "3") {
$versionSection = "$version-Py3" $versionSection = "$version-Py3"
} Else { } else {
$versionSection = "$version-Py2" $versionSection = "$version-Py2"
} }
} }
} }
If (!$ConfigureOnly) { if (!$ConfigureOnly) {
#=============================================================================== #===============================================================================
# Download minion setup file # Download minion setup file
#=============================================================================== #===============================================================================
@ -275,9 +281,9 @@ If (!$ConfigureOnly) {
# - master: salt # - master: salt
# - Start the service # - Start the service
$parameters = "" $parameters = ""
If($minion -ne "not-specified") {$parameters = "/minion-name=$minion"} if($minion -ne "not-specified") {$parameters = "/minion-name=$minion"}
If($master -ne "not-specified") {$parameters = "$parameters /master=$master"} if($master -ne "not-specified") {$parameters = "$parameters /master=$master"}
If($runservice -eq $false) {$parameters = "$parameters /start-service=0"} if($runservice -eq $false) {$parameters = "$parameters /start-service=0"}
#=============================================================================== #===============================================================================
# Install minion silently # Install minion silently
@ -291,12 +297,12 @@ If (!$ConfigureOnly) {
#=============================================================================== #===============================================================================
# Wait for salt-minion service to be registered before trying to start it # Wait for salt-minion service to be registered before trying to start it
$service = Get-Service salt-minion -ErrorAction SilentlyContinue $service = Get-Service salt-minion -ErrorAction SilentlyContinue
While (!$service) { while (!$service) {
Start-Sleep -s 2 Start-Sleep -s 2
$service = Get-Service salt-minion -ErrorAction SilentlyContinue $service = Get-Service salt-minion -ErrorAction SilentlyContinue
} }
If($runservice) { if($runservice) {
# Start service # Start service
Write-Output "Starting the Salt minion service" Write-Output "Starting the Salt minion service"
Start-Service -Name "salt-minion" -ErrorAction SilentlyContinue Start-Service -Name "salt-minion" -ErrorAction SilentlyContinue
@ -304,7 +310,7 @@ If (!$ConfigureOnly) {
# Check if service is started, otherwise retry starting the # Check if service is started, otherwise retry starting the
# service 4 times. # service 4 times.
$try = 0 $try = 0
While (($service.Status -ne "Running") -and ($try -ne 4)) { while (($service.Status -ne "Running") -and ($try -ne 4)) {
Start-Service -Name "salt-minion" -ErrorAction SilentlyContinue Start-Service -Name "salt-minion" -ErrorAction SilentlyContinue
$service = Get-Service salt-minion -ErrorAction SilentlyContinue $service = Get-Service salt-minion -ErrorAction SilentlyContinue
Start-Sleep -s 2 Start-Sleep -s 2
@ -313,12 +319,12 @@ If (!$ConfigureOnly) {
# If the salt-minion service is still not running, something probably # If the salt-minion service is still not running, something probably
# went wrong and user intervention is required - report failure. # went wrong and user intervention is required - report failure.
If ($service.Status -eq "Stopped") { if ($service.Status -eq "Stopped") {
Write-Output -NoNewline "Failed to start salt minion" Write-Output -NoNewline "Failed to start salt minion"
exit 1 exit 1
} }
} }
Else { else {
Write-Output -NoNewline "Stopping salt minion and setting it to 'Manual'" Write-Output -NoNewline "Stopping salt minion and setting it to 'Manual'"
Set-Service "salt-minion" -StartupType "Manual" Set-Service "salt-minion" -StartupType "Manual"
Stop-Service "salt-minion" Stop-Service "salt-minion"
@ -328,9 +334,9 @@ If (!$ConfigureOnly) {
#=============================================================================== #===============================================================================
# Script Complete # Script Complete
#=============================================================================== #===============================================================================
If ($ConfigureOnly) { if ($ConfigureOnly) {
Write-Output "Salt minion successfully configured" Write-Output "Salt minion successfully configured"
} }
Else { else {
Write-Output "Salt minion successfully installed" Write-Output "Salt minion successfully installed"
} }

View file

@ -23,7 +23,7 @@
#====================================================================================================================== #======================================================================================================================
set -o nounset # Treat unset variables as an error set -o nounset # Treat unset variables as an error
__ScriptVersion="2022.03.15" __ScriptVersion="2022.05.19"
__ScriptName="bootstrap-salt.sh" __ScriptName="bootstrap-salt.sh"
__ScriptFullName="$0" __ScriptFullName="$0"
@ -572,7 +572,7 @@ fi
echoinfo "Running version: ${__ScriptVersion}" echoinfo "Running version: ${__ScriptVersion}"
echoinfo "Executed by: ${CALLER}" echoinfo "Executed by: ${CALLER}"
echoinfo "Command line: '${__ScriptFullName} ${__ScriptArgs}'" echoinfo "Command line: '${__ScriptFullName} ${__ScriptArgs}'"
#echowarn "Running the unstable version of ${__ScriptName}" echowarn "Running the unstable version of ${__ScriptName}"
# Define installation type # Define installation type
if [ "$#" -gt 0 ];then if [ "$#" -gt 0 ];then
@ -1466,6 +1466,9 @@ __ubuntu_codename_translation() {
"21") "21")
DISTRO_CODENAME="hirsute" DISTRO_CODENAME="hirsute"
;; ;;
"22")
DISTRO_CODENAME="jammy"
;;
*) *)
DISTRO_CODENAME="trusty" DISTRO_CODENAME="trusty"
;; ;;
@ -1492,6 +1495,7 @@ __debian_derivatives_translation() {
devuan_1_debian_base="8.0" devuan_1_debian_base="8.0"
devuan_2_debian_base="9.0" devuan_2_debian_base="9.0"
kali_1_debian_base="7.0" kali_1_debian_base="7.0"
kali_2021_debian_base="10.0"
linuxmint_1_debian_base="8.0" linuxmint_1_debian_base="8.0"
raspbian_8_debian_base="8.0" raspbian_8_debian_base="8.0"
raspbian_9_debian_base="9.0" raspbian_9_debian_base="9.0"
@ -2925,7 +2929,8 @@ __enable_universe_repository() {
__install_saltstack_ubuntu_repository() { __install_saltstack_ubuntu_repository() {
# Workaround for latest non-LTS Ubuntu # Workaround for latest non-LTS Ubuntu
if { [ "$DISTRO_MAJOR_VERSION" -eq 20 ] && [ "$DISTRO_MINOR_VERSION" -eq 10 ]; } || \ if { [ "$DISTRO_MAJOR_VERSION" -eq 20 ] && [ "$DISTRO_MINOR_VERSION" -eq 10 ]; } || \
[ "$DISTRO_MAJOR_VERSION" -eq 21 ]; then # remove 22 version when salt packages for 22.04 are available
[ "$DISTRO_MAJOR_VERSION" -eq 21 ] || [ "$DISTRO_MAJOR_VERSION" -eq 22 ]; then
echowarn "Non-LTS Ubuntu detected, but stable packages requested. Trying packages for previous LTS release. You may experience problems." echowarn "Non-LTS Ubuntu detected, but stable packages requested. Trying packages for previous LTS release. You may experience problems."
UBUNTU_VERSION=20.04 UBUNTU_VERSION=20.04
UBUNTU_CODENAME="focal" UBUNTU_CODENAME="focal"
@ -3039,7 +3044,7 @@ install_ubuntu_stable_deps() {
if [ "${_UPGRADE_SYS}" -eq $BS_TRUE ]; then if [ "${_UPGRADE_SYS}" -eq $BS_TRUE ]; then
if [ "${_INSECURE_DL}" -eq $BS_TRUE ]; then if [ "${_INSECURE_DL}" -eq $BS_TRUE ]; then
if [ "$DISTRO_MAJOR_VERSION" -ge 20 ] || [ "$DISTRO_MAJOR_VERSION" -ge 21 ]; then if [ "$DISTRO_MAJOR_VERSION" -ge 20 ] || [ "$DISTRO_MAJOR_VERSION" -ge 21 ] || [ "$DISTRO_MAJOR_VERSION" -ge 22 ]; then
__apt_get_install_noinput --allow-unauthenticated debian-archive-keyring && apt-get update || return 1 __apt_get_install_noinput --allow-unauthenticated debian-archive-keyring && apt-get update || return 1
else else
__apt_get_install_noinput --allow-unauthenticated debian-archive-keyring && __apt_get_install_noinput --allow-unauthenticated debian-archive-keyring &&
@ -3120,6 +3125,9 @@ install_ubuntu_git_deps() {
fi fi
else else
__PACKAGES="python${PY_PKG_VER}-dev python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc" __PACKAGES="python${PY_PKG_VER}-dev python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc"
if [ "$DISTRO_MAJOR_VERSION" -ge 22 ]; then
__PACKAGES="${__PACKAGES} g++"
fi
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__apt_get_install_noinput ${__PACKAGES} || return 1 __apt_get_install_noinput ${__PACKAGES} || return 1
fi fi
@ -3768,6 +3776,13 @@ install_debian_git_post() {
done done
} }
install_debian_2021_post() {
# Kali 2021 (debian derivative) disables all network services by default
# Using archlinux post function to enable salt systemd services
install_arch_linux_post || return 1
return 0
}
install_debian_restart_daemons() { install_debian_restart_daemons() {
[ "$_START_DAEMONS" -eq $BS_FALSE ] && return 0 [ "$_START_DAEMONS" -eq $BS_FALSE ] && return 0
@ -3983,6 +3998,9 @@ install_fedora_git_deps() {
done done
else else
__PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc" __PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc"
if [ "${DISTRO_VERSION}" -ge 35 ]; then
__PACKAGES="${__PACKAGES} gcc-c++"
fi
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__dnf_install_noinput ${__PACKAGES} || return 1 __dnf_install_noinput ${__PACKAGES} || return 1
fi fi
@ -4028,6 +4046,11 @@ install_fedora_git_post() {
__copyfile "${_SALT_GIT_CHECKOUT_DIR}/pkg/rpm/salt-${fname}.service" "/lib/systemd/system/salt-${fname}.service" __copyfile "${_SALT_GIT_CHECKOUT_DIR}/pkg/rpm/salt-${fname}.service" "/lib/systemd/system/salt-${fname}.service"
# Salt executables are located under `/usr/local/bin/` on Fedora 36+
if [ "${DISTRO_VERSION}" -ge 36 ]; then
sed -i -e 's:/usr/bin/:/usr/local/bin/:g' /lib/systemd/system/salt-*.service
fi
# Skip salt-api since the service should be opt-in and not necessarily started on boot # Skip salt-api since the service should be opt-in and not necessarily started on boot
[ $fname = "api" ] && continue [ $fname = "api" ] && continue
@ -6140,7 +6163,7 @@ install_openbsd_git_deps() {
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
if [ "${_POST_NEON_INSTALL}" -eq $BS_TRUE ]; then if [ "${_POST_NEON_INSTALL}" -eq $BS_TRUE ]; then
pkg_add -I -v py-pip py-setuptools pkg_add -I -v py3-pip py3-setuptools
fi fi
# #

36
kitchen.macos.yml Normal file
View file

@ -0,0 +1,36 @@
---
driver:
name: exec
provisioner:
sudo: true
salt_bootstrap_options: -MP stable %s
salt_call_command: /opt/salt/bin/salt-call
init_environment: |
echo 'auto_accept: true' > /tmp/auto-accept-keys.conf
sudo mkdir -p /etc/salt/master.d
sudo mv /tmp/auto-accept-keys.conf /etc/salt/master.d/auto-accept-keys.conf
brew install coreutils
sh -c 't=$(gshuf -i 1-15 -n 1); echo Sleeping $t seconds; sleep $t'
platforms:
- name: macos-12
- name: macos-11
- name: macos-1015
suites:
- name: py3-stable-3002
provisioner:
salt_version: 3002.8
- name: py3-stable-3003
provisioner:
salt_version: 3003.4
- name: py3-stable-3004
provisioner:
salt_version: 3004.1
- name: latest
provisioner:
salt_version: latest
verifier:
command: pytest --cache-clear -v -s -ra --log-cli-level=debug -k "not test_ping" tests/integration/

View file

@ -9,8 +9,8 @@ driver:
gui: false gui: false
ssh: ssh:
shell: /bin/sh shell: /bin/sh
<% unless ENV['CI'] %>
linked_clone: true linked_clone: true
<% unless ENV['CI'] %>
synced_folders: synced_folders:
- - '.kitchen/kitchen-vagrant/%{instance_name}/vagrant' - - '.kitchen/kitchen-vagrant/%{instance_name}/vagrant'
- '/vagrant' - '/vagrant'

View file

@ -19,13 +19,13 @@ platforms:
suites: suites:
- name: py3-stable-3002 - name: py3-stable-3002
provisioner: provisioner:
salt_version: 3002 salt_version: 3002.8-1
- name: py3-stable-3003 - name: py3-stable-3003
provisioner: provisioner:
salt_version: 3003 salt_version: 3003.4-1
- name: py3-stable-3004 - name: py3-stable-3004
provisioner: provisioner:
salt_version: 3004 salt_version: 3004.1-1
- name: latest - name: latest
provisioner: provisioner:
salt_version: latest salt_version: latest

View file

@ -65,6 +65,9 @@ platforms:
- name: fedora-35 - name: fedora-35
driver: driver:
provision_command: *fedora_provision_command provision_command: *fedora_provision_command
- name: fedora-36
driver:
provision_command: *fedora_provision_command
- name: gentoo - name: gentoo
driver: driver:
image: gentoo/stage3:latest image: gentoo/stage3:latest
@ -97,6 +100,11 @@ platforms:
- name: oraclelinux-8 - name: oraclelinux-8
- name: oraclelinux-7 - name: oraclelinux-7
- name: rockylinux-8 - name: rockylinux-8
- name: ubuntu-22.04
driver:
run_command: /lib/systemd/systemd
provision_command:
- echo "PubkeyAcceptedAlgorithms +ssh-rsa" | tee -a /etc/ssh/sshd_config
- name: ubuntu-21.10 - name: ubuntu-21.10
driver: driver:
run_command: /lib/systemd/systemd run_command: /lib/systemd/systemd
@ -106,9 +114,6 @@ platforms:
- name: ubuntu-18.04 - name: ubuntu-18.04
driver: driver:
run_command: /lib/systemd/systemd run_command: /lib/systemd/systemd
- name: ubuntu-16.04
driver_config:
run_command: /lib/systemd/systemd
suites: suites:
- name: py3-git-3002 - name: py3-git-3002

View file

@ -9,6 +9,11 @@ log = logging.getLogger(__name__)
@pytest.fixture(scope="session") @pytest.fixture(scope="session")
def host(): def host():
if os.environ.get("RUNNER_OS", "") == "macOS":
# Adjust the `PATH` so that the `salt-call` executable can be found
os.environ["PATH"] = "/opt/salt/bin{}{}".format(os.pathsep, os.environ["PATH"])
return testinfra.get_host("local://", sudo=True)
if os.environ.get("KITCHEN_USERNAME") == "vagrant" or "windows" in os.environ.get( if os.environ.get("KITCHEN_USERNAME") == "vagrant" or "windows" in os.environ.get(
"KITCHEN_INSTANCE" "KITCHEN_INSTANCE"
): ):

View file

@ -1,4 +1,4 @@
testinfra pytest-testinfra
paramiko paramiko
pywinrm; sys.platform == 'win32' pywinrm; sys.platform == 'win32'
six>=1.10.0 six>=1.10.0