Merge pull request #1275 from rallytime/merge-stable

[stable] Merge develop into stable for new release
This commit is contained in:
Nicole Thomas 2018-08-13 13:51:50 -04:00 committed by GitHub
commit 36f843063e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 628 additions and 281 deletions

View file

@ -12,6 +12,7 @@ Adam Wright hipikat adam@hipikat.org
Alec Koumjian akoumjian akoumjian@gmail.com
Alex Van't Hof alexvh
Alexander Krasnukhin themalkolm the.malkolm@gmail.com
Alexandru Avadanii alexandruavadanii Alexandru.Avadanii@enea.com
Alexey dmitrievav
Ali Rizvi-Santiago arizvisa
amendlik amendlik
@ -69,6 +70,7 @@ Guillaume Derval GuillaumeDerval guillaume@guillaumederval.be
gweis gweis
Henrik Holmboe holmboe
Howard Mei HowardMei howardleomei@gmail.com
Jan Heidbrink jheidbrink
James Booth absolutejam vvalentine1337@gmail.com
Jared E Stroud jaredestroud jaredestroud@gmail.com
Jasper Lievisse Adriaanse jasperla jasper@humppa.nl
@ -80,6 +82,7 @@ Justin Anderson justinta justin.ta@outlook.com
Justin Findlay jfindlay jfindlay@gmail.com
Karl Grzeszczak karlgrz
Kenneth Wilke KennethWilke
Ky-Anh Huynh icy
lomeroe lomeroe
Liu Xiaohui oreh herolxh@gmail.com
Lorenzo Perone lopezio lorenzo.perone@yellowspace.net
@ -96,11 +99,13 @@ Matthew Mead-Briggs mattmb
Matthew Richardson mrichar1
Matthew Willson ixela
Matthieu Guegan mguegan
mfapouw mfapouw
Michael A. Smith kojiromike michaels@syapse.com
Michael Scherer mscherer
Michele Bologna mbologna michele.bologna@gmail.com
Mike Carlson m87carlson mike@bayphoto.com
Mike Place cachedout mp@saltstack.com
N noelmcloughlin noel.maclochlainn@gmail.com
nasenbaer13 nasenbaer13
nevins-b nevins-b
Nicole Thomas rallytime nicole@saltstack.com

View file

@ -1,3 +1,33 @@
Version TBD (In Progress on the Develop Branch):
Version 2018.08.13:
* Fedora Py3 fixes (The-Loeki) #1273
* Handle commented lines in the requirements files for pip pkgs (rallytime) #1271
* Remove typo: extra 'c' was accidentally added in #1269 (rallytime) #1270
* [Arch] Add python2-futures to list of pkgs on git install (rallytime) #1269
* Fix undefined variable warn_msg on amd64 (alexandruavadanii) #1268
* SLES12SP changed packages git to git-core and libzmq3 to libzmq4 (mfapouw) #1266
* Add opensuse 15 specific installation functions (rallytime) #1263
* Remove support for openSUSE Leap 42.2 (rallytime) #1262
* Remove support for Fedora 26 (rallytime) #1261
* Remove support for Ubuntu 17.10 (rallytime) #1260
* Ensure pipe is absent before mkfifo/mknod (noelmcloughlin) #1256
* fix for opensuse15 if no lsb_release pkg (noelmcloughlin) #1255
* Fix Up ShellCheck errors/warnings for latest version of shellcheck (rallytime) #1253
* Remove daily install option on Ubuntu system (icy) #1250
* Add python 3 support for Ubuntu 18 (rallytime) #1248
* Return immediately if apt-get fails (icy) #1247
* Disable shell error about unbound variable during daily install (icy) #1246
* OpenSuse_Leap_15.0 saltstack repo support (noelmcloughlin) #1244
* Add Python3 package support for Debian 9 (rallytime) #1243
* Add Python3 package support for CentOS 7 (rallytime) #1242
* Shellcheck fixes found when running latest version (rallytime) #1239
* Add Python3 package support for Ubuntu 16.04 (rallytime) #1238
* Fix the variable ref from #803 (rallytime) #1229
* Add Ubuntu 18.04 support (rallytime) #1228
* Call __git_clone_and_checkout directly (jheidbrink) #1226
* Fix for silently ignored version argument on CentOS/RHEL (pjcreath) #1210
Version 2018.04.25:
* Install py-tornado4 for FreeBSD. (abednarik) #1219
* Remove COPR repos configuration for Fedora (vutny ) #1211

114
Jenkinsfile vendored Normal file
View file

@ -0,0 +1,114 @@
import java.util.Random
Random rand = new Random()
// ONLY CHANGE THIS BIT PLEASE
def baseDistros = ["debian8",
"suse",
"centos6",
"arch",
"ubuntu-14.04",
"ubuntu-18.04",
"windows",
]
def versions = ["stable", "git", "stable-old"]
def basePrDistros = ["ubuntu-16.04",
"centos7"]
def prVersions = ["stable", "git"]
// You probably shouldn't be messing with this stuff down here
def distros = (baseDistros + basePrDistros).unique()
def notifySuccessful(String stageName) {
slackSend (color: '#00FF00', message: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})" + "\n Stage -- " + stageName)
}
def notifyFailed(String stageName) {
slackSend (color: '#FF0000', message: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})" + "\n Stage -- " + stageName)
}
def runKitchen(String distro) {
echo "kitchen create ${distro}"
echo "kitchen converge ${distro}"
echo "kitchen destroy ${distro}"
}
def distroversions = []
for (d in distros) {
for (v in versions) {
distroversions = distroversions + ["${d}-${v}"]
}
}
def prDistros = (basePrDistros + distros[rand.nextInt(baseDistros.size())]).unique()
def prDistroversions = []
for (d in prDistros) {
for (v in prVersions) {
prDistroversions = prDistroversions + ["${d}-${v}"]
}
}
def makeSetupRuns(dv) {
return {
node {
runKitchen("${dv}")
}
}
}
def setupRuns = distroversions.collectEntries {
["kitchen-${it}" : makeSetupRuns("${it}")]
}
def prSetupRuns = prDistroversions.collectEntries {
["kitchen-${it}" : makeSetupRuns("${it}")]
}
node ('bootstrap') {
timestamps {
ansiColor('xterm') {
stage('checkout') { checkout scm }
stage('shellcheck') {
sh 'stack exec -- shellcheck -s sh -f checkstyle bootstrap-salt.sh | tee checkstyle.xml'
checkstyle canComputeNew: false, defaultEncoding: '', healthy: '', pattern: '**/checkstyle.xml', unHealthy: '', unstableTotalAll: '0'
archiveArtifacts artifacts: '**/checkstyle.xml'
}
// if (env.CHANGE_ID) {
// // Running for a PR only runs against 4 random distros from a shorter list
// stage('kitchen-pr') {
// parallel prSetupRuns
// }
// } else {
// // If we're not running for a pr we run *everything*
// stage('kitchen-all') {
// parallel setupRuns
// }
// }
}
}
}
/*
* TODO:
* 1. Tests for each supported distro in bootstrap + branch shellcheck test (Shellcheck should be done)
* 2. Each distro needs a "stable" install (installs stable packages from our repo) and a "git" install (installs off of a git tag)
* 3. Running against each branch (stable, develop)
* 4. And probably a small subset against each pull request (similar to what we do in salt)
*
* Distros to check:
* Debian 8
* Suse 42.1
* CentOS 7
* CentOS 6
* Arch
* Ubuntu 16.04
* Ubuntu 14.04
* Windows
*
* Runs each against develop and stable
*
*/

View file

@ -28,6 +28,7 @@ sum** of the downloaded ``bootstrap-salt.sh`` file.
The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is:
- 2018.04.25: ``e2e3397d6642ba6462174b4723f1b30d04229b75efc099a553e15ea727877dfb``
- 2017.12.13: ``c127b3aa4a8422f6b81f5b4a40d31d13cec97bf3a39bca9c11a28f24910a6895``
- 2017.08.17: ``909b4d35696b9867b34b22ef4b60edbc5a0e9f8d1ed8d05f922acb79a02e46e3``
- 2017.05.24: ``8c42c2e5ad3d4384ddc557da5c214ba3e40c056ca1b758d14a392c1364650e89``
@ -256,7 +257,7 @@ Red Hat family
- Amazon Linux 2012.3 and later
- CentOS 6/7
- Cloud Linux 6/7
- Fedora 26/27/28 (install latest stable from standard repositories)
- Fedora 27/28 (install latest stable from standard repositories)
- Oracle Linux 6/7
- Red Hat Enterprise Linux 6/7
- Scientific Linux 6/7
@ -265,17 +266,26 @@ Red Hat family
SUSE family
~~~~~~~~~~~
- openSUSE Leap 42.2/42.3
- openSUSE Leap 15 (see note below)
- openSUSE Leap 42.3
- openSUSE Tumbleweed 2015
- SUSE Linux Enterprise Server 11 SP4, 12 SP2
**NOTE:** Leap 15 installs Python 3 Salt packages by default. Salt is packaged by SUSE, and
Leap 15 ships with Python 3. Salt with Python 2 can be installed using the the ``-x`` option
in combination with the ``git`` installation method.
.. code:: console
sh bootstrap-salt.sh -x python2 git v2018.3.2
Ubuntu and derivatives
~~~~~~~~~~~~~~~~~~~~~~
- KDE neon (based on Ubuntu 16.04)
- Linux Mint 17/18
- Ubuntu 14.04/16.04 and subsequent non-TLS releases (see below)
- Ubuntu 14.04/16.04/18.04 and subsequent non-LTS releases (see below)
Ubuntu Best Effort Support: Non-LTS Releases
********************************************
@ -285,8 +295,11 @@ repositories are not provided on `SaltStack's Ubuntu repository`_ for the non-LT
bootstrap script will attempt to install the packages for the most closely related LTS Ubuntu
release instead.
For example, when installing Salt on Ubuntu 17.10, the bootstrap script will setup the repository
for Ubuntu 16.04 from `SaltStack's Ubuntu repository`_ and install the 16.04 packages.
For example, when installing Salt on Ubuntu 18.10, the bootstrap script will setup the repository
for Ubuntu 18.04 from `SaltStack's Ubuntu repository`_ and install the 18.04 packages.
Non-LTS Ubuntu releases are not supported once the release reaches End-of-Life as defined by
`Ubuntu's release schedule`_.
Other Linux distributions
@ -309,8 +322,8 @@ UNIX systems
- SmartOS
Unsupported Distro
------------------
Unsupported Distributions
-------------------------
If you are running a Linux distribution that is not supported yet or is not correctly identified,
please run the following commands and report their output when creating an issue:
@ -323,6 +336,28 @@ please run the following commands and report their output when creating an issue
For information on how to add support for a currently unsupported distribution, please refer to the
`Contributing Guidelines`_.
Python 3 Support
----------------
Some distributions support installing Salt to use Python 3 instead of Python 2. The availability of
this offering, while limited, is as follows:
- CentOS 7
- Debian 9
- Fedora (only git installations)
- Ubuntu 16.04
- Ubuntu 18.04
On Fedora 28, PIP installation must be allowed (-P) due to incompatibility with the shipped Tornado library.
Installing the Python 3 packages for Salt is done via the ``-x`` option:
.. code:: console
sh bootstrap-salt.sh -x python3
See the ``-x`` option for more information.
Testing
-------
@ -381,6 +416,7 @@ Salt components, custom configurations, and even `pre-accepted Minion keys`_ alr
.. _`SaltStack's corporate repository`: https://repo.saltstack.com/
.. _`SaltStack's Debian repository`: http://repo.saltstack.com/#debian
.. _`SaltStack's Ubuntu repository`: http://repo.saltstack.com/#ubuntu
.. _`Ubuntu's release schedule`: https://wiki.ubuntu.com/Releases
.. _Vagrant: http://www.vagrantup.com

File diff suppressed because it is too large Load diff

View file

@ -270,39 +270,6 @@ class InstallationTestCase(BootstrapTestCase):
)
)
def test_install_daily(self):
args = []
if requires_pip_based_installations():
args.append('-P')
args.append('daily')
rc, out, err = self.run_script(
args=args, timeout=15 * 60, stream_stds=True
)
if GRAINS['os'] in ('Ubuntu', 'Trisquel', 'Mint'):
self.assert_script_result(
'Failed to install daily',
0, (rc, out, err)
)
# Try to get the versions report
self.assert_script_result(
'Failed to get the versions report (\'--versions-report\')',
0,
self.run_script(
script=None,
args=('salt-minion', '--versions-report'),
timeout=15 * 60,
stream_stds=True
)
)
else:
self.assert_script_result(
'Although system is not Ubuntu, we managed to install',
1, (rc, out, err)
)
def test_install_testing(self):
args = []
if requires_pip_based_installations():