Skip to content

Commit

Permalink
Merge pull request #1275 from rallytime/merge-stable
Browse files Browse the repository at this point in the history
[stable] Merge develop into stable for new release
  • Loading branch information
Nicole Thomas authored Aug 13, 2018
2 parents 466d62f + bbd3244 commit 36f8430
Show file tree
Hide file tree
Showing 6 changed files with 623 additions and 276 deletions.
5 changes: 5 additions & 0 deletions AUTHORS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Adam Wright hipikat [email protected]
Alec Koumjian akoumjian [email protected]
Alex Van't Hof alexvh
Alexander Krasnukhin themalkolm [email protected]
Alexandru Avadanii alexandruavadanii [email protected]
Alexey dmitrievav
Ali Rizvi-Santiago arizvisa
amendlik amendlik
Expand Down Expand Up @@ -69,6 +70,7 @@ Guillaume Derval GuillaumeDerval [email protected]
gweis gweis
Henrik Holmboe holmboe
Howard Mei HowardMei [email protected]
Jan Heidbrink jheidbrink
James Booth absolutejam [email protected]
Jared E Stroud jaredestroud [email protected]
Jasper Lievisse Adriaanse jasperla [email protected]
Expand All @@ -80,6 +82,7 @@ Justin Anderson justinta [email protected]
Justin Findlay jfindlay [email protected]
Karl Grzeszczak karlgrz
Kenneth Wilke KennethWilke
Ky-Anh Huynh icy
lomeroe lomeroe
Liu Xiaohui oreh [email protected]
Lorenzo Perone lopezio [email protected]
Expand All @@ -96,11 +99,13 @@ Matthew Mead-Briggs mattmb
Matthew Richardson mrichar1
Matthew Willson ixela
Matthieu Guegan mguegan
mfapouw mfapouw
Michael A. Smith kojiromike [email protected]
Michael Scherer mscherer
Michele Bologna mbologna [email protected]
Mike Carlson m87carlson [email protected]
Mike Place cachedout [email protected]
N noelmcloughlin [email protected]
nasenbaer13 nasenbaer13
nevins-b nevins-b
Nicole Thomas rallytime [email protected]
Expand Down
30 changes: 30 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -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
Expand Down
114 changes: 114 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -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
*
*/
50 changes: 43 additions & 7 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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``
Expand Down Expand Up @@ -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
Expand All @@ -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
********************************************
Expand All @@ -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
Expand All @@ -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:
Expand All @@ -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
-------

Expand Down Expand Up @@ -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


Expand Down
Loading

0 comments on commit 36f8430

Please sign in to comment.