diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6059d7b..61ddddc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,12 +1,16 @@ --- +.script-git-submodule: &script-git-submodule + - | + git submodule sync --recursive + git submodule update --init --recursive + .script-bootstrap-packer: &script-bootstrap-packer - | curl -skL -O https://github.com/hashicorp/packer/releases/download/nightly/packer_linux_amd64.zip sudo unzip -qq -o -d /usr/local/bin packer_linux_amd64.zip rm -rf packer_linux_amd64.zip - .script-bootstrap-docker: &script-bootstrap-docker - | curl -skL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - @@ -22,43 +26,44 @@ curl -skL https://bootstrap.pypa.io/get-pip.py | sudo -H python3 - --prefix=/usr/local sudo -H pip3 install --prefix=/usr/local --upgrade --ignore-installed --requirement requirements.txt +.script-linters: &script-linters + - | + yamllint . + ansible-lint + flake8 + .script-packer-build: &script-packer-build - | cd packer/$_PACKER_BUILDER_PROVIDER-$_PACKER_BUILDER_VERSION sudo packer build packer.json +.script-docker-push: &script-docker-push + - | + echo $DOCKER_TOKEN | sudo docker login --username=$DOCKER_USERNAME --password-stdin + export _DOCKER_IMAGE=$(sudo docker images | awk '{print $3}' | awk 'NR==2') + export _DOCKER_REPO=$CI_PROJECT_NAMESPACE/$(echo $CI_PROJECT_NAME | sed 's/^docker-//g') + if [[ -n "$CI_COMMIT_TAG" ]] && [[ "$CI_COMMIT_TAG" =~ ^$PACKER_BUILDER_VERSION ]]; then + sudo docker tag $_DOCKER_IMAGE $_DOCKER_REPO:$CI_COMMIT_TAG + sudo docker push $_DOCKER_REPO:$CI_COMMIT_TAG + sudo docker tag $_DOCKER_IMAGE $_DOCKER_REPO:latest + sudo docker push $_DOCKER_REPO:latest + elif [[ -n "$CI_COMMIT_BRANCH" ]] && [[ "$CI_COMMIT_BRANCH" =~ master ]]; then + sudo docker tag $_DOCKER_IMAGE $_DOCKER_REPO:$_PACKER_BUILDER_VERSION + sudo docker push $_DOCKER_REPO:$_PACKER_BUILDER_VERSION + fi + .job-packer: &job-packer script: - *script-bootstrap-packer - *script-bootstrap-docker - *script-bootstrap-ansible + - *script-linters - *script-packer-build + - *script-docker-push default: before_script: - - | - git submodule sync --recursive - git submodule update --init --recursive - - - | - yamllint . - ansible-lint - flake8 - - after_script: - - | - echo $DOCKER_TOKEN | sudo docker login --username=$DOCKER_USERNAME --password-stdin - export _DOCKER_IMAGE=$(sudo docker images | awk '{print $3}' | awk 'NR==2') - export _DOCKER_REPO=$CI_PROJECT_NAMESPACE/$(echo $CI_PROJECT_NAME | sed 's/^docker-//g') - if [[ -n "$CI_COMMIT_TAG" ]] && [[ "$CI_COMMIT_TAG" =~ ^$PACKER_BUILDER_VERSION ]]; then - sudo docker tag $_DOCKER_IMAGE $_DOCKER_REPO:$CI_COMMIT_TAG - sudo docker push $_DOCKER_REPO:$CI_COMMIT_TAG - sudo docker tag $_DOCKER_IMAGE $_DOCKER_REPO:latest - sudo docker push $_DOCKER_REPO:latest - elif [[ -n "$CI_COMMIT_BRANCH" ]] && [[ "$CI_COMMIT_BRANCH" =~ master ]]; then - sudo docker tag $_DOCKER_IMAGE $_DOCKER_REPO:$_PACKER_BUILDER_VERSION - sudo docker push $_DOCKER_REPO:$_PACKER_BUILDER_VERSION - fi + - *script-git-submodule docker-4.8: <<: *job-packer diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b188e9..000e1b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## 4.8.4-XalvistackY - TBC +### Major Changes + +## 4.8.4-4alvistack9 - 2020-12-09 + ### Major Changes - Migrate from Travis CI to GitLab CI diff --git a/packer/docker-4.7/packer.json b/packer/docker-4.7/packer.json index c8cef71..be09511 100644 --- a/packer/docker-4.7/packer.json +++ b/packer/docker-4.7/packer.json @@ -35,7 +35,7 @@ "provisioners": [ { "inline": [ - "set -ex", + "set -euo pipefail", "apt-get update", "apt-get dist-upgrade -y", "apt-get install -y ca-certificates curl gcc iproute2 python3 python3-dev sudo" diff --git a/packer/docker-4.8/packer.json b/packer/docker-4.8/packer.json index c8cef71..be09511 100644 --- a/packer/docker-4.8/packer.json +++ b/packer/docker-4.8/packer.json @@ -35,7 +35,7 @@ "provisioners": [ { "inline": [ - "set -ex", + "set -euo pipefail", "apt-get update", "apt-get dist-upgrade -y", "apt-get install -y ca-certificates curl gcc iproute2 python3 python3-dev sudo" diff --git a/playbooks/prepare.yml b/playbooks/prepare.yml index 038ff40..2363a0f 100644 --- a/playbooks/prepare.yml +++ b/playbooks/prepare.yml @@ -21,14 +21,14 @@ tasks: - name: cp -rfT /etc/skel /root raw: | - set -ex + set -euo pipefail cp -rfT /etc/skel /root changed_when: false ignore_errors: true - name: setenforce 0 raw: | - set -ex + set -euo pipefail setenforce 0 sed -i 's/^SELINUX=.*$/SELINUX=permissive/g' /etc/selinux/config changed_when: false @@ -36,7 +36,7 @@ - name: systemctl stop firewalld.service raw: | - set -ex + set -euo pipefail systemctl stop firewalld.service systemctl disable firewalld.service changed_when: false @@ -44,7 +44,7 @@ - name: systemctl stop ufw.service raw: | - set -ex + set -euo pipefail systemctl stop ufw.service systemctl disable ufw.service changed_when: false @@ -52,7 +52,7 @@ - name: redhat | subscription-manager register raw: | - set -ex + set -euo pipefail subscription-manager register \ --username={{ lookup('env', 'REDHAT_USERNAME') }} \ --password={{ lookup('env', 'REDHAT_PASSWORD') }} \ @@ -62,7 +62,7 @@ - name: debian | apt-get install -y ca-certificates curl gcc iproute2 python3 python3-dev sudo raw: | - set -ex + set -euo pipefail apt-get update apt-get dist-upgrade -y apt-get install -y ca-certificates curl gcc iproute2 python3 python3-dev sudo @@ -71,7 +71,7 @@ - name: redhat | yum install -y ca-certificates curl gcc iproute python3 python3-devel sudo raw: | - set -ex + set -euo pipefail yum makecache yum update -y yum install -y ca-certificates curl gcc iproute python3 python3-devel sudo @@ -80,7 +80,7 @@ - name: suse | zypper -n install -y ca-certificates curl gcc iproute2 python3 python3-devel sudo raw: | - set -ex + set -euo pipefail zypper -n --gpg-auto-import-keys refresh zypper -n update -y zypper -n install -y ca-certificates curl gcc iproute2 python3 python3-devel sudo diff --git a/playbooks/side_effect.yml b/playbooks/side_effect.yml index 515d2cd..fc602d3 100644 --- a/playbooks/side_effect.yml +++ b/playbooks/side_effect.yml @@ -21,7 +21,7 @@ tasks: - name: rm -rf /root/.ansible/tmp/* raw: | - set -ex + set -euo pipefail rm -rf /root/.ansible/tmp/* rm -rf /root/.cache/* rm -rf /tmp/* @@ -30,7 +30,7 @@ - name: debian | apt-get -y autoclean raw: | - set -ex + set -euo pipefail apt-get -y autoremove apt-get -y autoclean rm -rf /var/lib/apt/lists/* @@ -39,7 +39,7 @@ - name: redhat | yum clean all raw: | - set -ex + set -euo pipefail yum clean all rm -rf /var/cache/yum/* changed_when: false @@ -47,7 +47,7 @@ - name: suse | zypper clean --all raw: | - set -ex + set -euo pipefail zypper clean --all rm -rf /var/cache/zypper/* changed_when: false diff --git a/playbooks/templates/usr/local/bin/docker-entrypoint.sh.j2 b/playbooks/templates/usr/local/bin/docker-entrypoint.sh.j2 index 721b8a1..444c385 100755 --- a/playbooks/templates/usr/local/bin/docker-entrypoint.sh.j2 +++ b/playbooks/templates/usr/local/bin/docker-entrypoint.sh.j2 @@ -2,7 +2,7 @@ # {{ ansible_managed }} -set -o xtrace +set -euo pipefail # Prepend executable if command starts with an option if [ "${1:0:1}" = '-' ]; then diff --git a/roles/catatonit b/roles/catatonit index 8325e92..070c9c1 160000 --- a/roles/catatonit +++ b/roles/catatonit @@ -1 +1 @@ -Subproject commit 8325e9220b4bd0a2f2723177046622456195fea7 +Subproject commit 070c9c1c592b3462e3ce3dcb3984c52797a4e077 diff --git a/roles/cvs b/roles/cvs index d7fea0d..e539027 160000 --- a/roles/cvs +++ b/roles/cvs @@ -1 +1 @@ -Subproject commit d7fea0d1c228008b0a492a6a863f321a6617dd98 +Subproject commit e539027348547c18ef6213da367537412bf46871 diff --git a/roles/fisheye b/roles/fisheye index f240b52..ea52458 160000 --- a/roles/fisheye +++ b/roles/fisheye @@ -1 +1 @@ -Subproject commit f240b520f8b929468cd1f9b89e6a75c017ed0d5c +Subproject commit ea52458128487963fdefa965d8cc1cc6061c03e2 diff --git a/roles/git b/roles/git index ab84daa..979fbda 160000 --- a/roles/git +++ b/roles/git @@ -1 +1 @@ -Subproject commit ab84daa70d18cf4c9e0f29ade38941cf04ba5a3b +Subproject commit 979fbdad4163454aad60be34161dbc5b293fd510 diff --git a/roles/gosu b/roles/gosu index 29c5479..4d6146f 160000 --- a/roles/gosu +++ b/roles/gosu @@ -1 +1 @@ -Subproject commit 29c5479eae8ba2c8ad76f405d3332dece2ccdf8b +Subproject commit 4d6146f20e8e924eb46a452050604426c458313c diff --git a/roles/locales b/roles/locales index b4019e6..5dcc68f 160000 --- a/roles/locales +++ b/roles/locales @@ -1 +1 @@ -Subproject commit b4019e66b816aede0115a8b1dd4178d0f19fe1aa +Subproject commit 5dcc68fd0d76c3019b78f75d9a8e51b7c5d92ec6 diff --git a/roles/mercurial b/roles/mercurial index a00dea4..e8b5c3a 160000 --- a/roles/mercurial +++ b/roles/mercurial @@ -1 +1 @@ -Subproject commit a00dea46267574894900bf6e72a973a48bd2aca5 +Subproject commit e8b5c3a85c0bbe56de375417764801f74cc97dda diff --git a/roles/openjdk b/roles/openjdk index 203fe49..b77678e 160000 --- a/roles/openjdk +++ b/roles/openjdk @@ -1 +1 @@ -Subproject commit 203fe49fc4d7f1fff72bfde1aeb834b61f44f0c3 +Subproject commit b77678e64ada7a8e9c03c184c724ad5b2ae13a63 diff --git a/roles/perforce b/roles/perforce index 4ecfe4d..c3d00d4 160000 --- a/roles/perforce +++ b/roles/perforce @@ -1 +1 @@ -Subproject commit 4ecfe4d1355f0a5512c73f8537a19b79d9aac112 +Subproject commit c3d00d444ad0fb72f0201f11cfb2ed76a6a47492 diff --git a/roles/python b/roles/python index 3d92a29..49df090 160000 --- a/roles/python +++ b/roles/python @@ -1 +1 @@ -Subproject commit 3d92a29ad74fc019c21aa66f7f91594b645afca1 +Subproject commit 49df0907c60bf44b2ceb61d83f2d385daa354bbe diff --git a/roles/svn b/roles/svn index 1ea29f0..70e38fb 160000 --- a/roles/svn +++ b/roles/svn @@ -1 +1 @@ -Subproject commit 1ea29f03d8364caa0c105cdd02a5aa47bbb93409 +Subproject commit 70e38fb7efc078136e31e90080b94220e641c89d diff --git a/roles/timezone b/roles/timezone index 83d4f51..47914c3 160000 --- a/roles/timezone +++ b/roles/timezone @@ -1 +1 @@ -Subproject commit 83d4f51bf834fcddd92becb8670c053906a3ebc2 +Subproject commit 47914c3a9ffc567457ec1503dd8bd00ae6a23ea0 diff --git a/scripts/bootstrap-ansible.sh b/scripts/bootstrap-ansible.sh index 9a81753..37ebc55 100755 --- a/scripts/bootstrap-ansible.sh +++ b/scripts/bootstrap-ansible.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -o xtrace +set -euo pipefail cd "$(cd "$(dirname "$0")"; pwd -P)/../" diff --git a/scripts/bootstrap-libvirt.sh b/scripts/bootstrap-libvirt.sh index dd5dc68..20c1cf1 100755 --- a/scripts/bootstrap-libvirt.sh +++ b/scripts/bootstrap-libvirt.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -o xtrace +set -euo pipefail cd "$(cd "$(dirname "$0")"; pwd -P)/../" diff --git a/scripts/bootstrap-vagrant.sh b/scripts/bootstrap-vagrant.sh index 53be7fb..0258d88 100755 --- a/scripts/bootstrap-vagrant.sh +++ b/scripts/bootstrap-vagrant.sh @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -o xtrace +set -euo pipefail cd "$(cd "$(dirname "$0")"; pwd -P)/../" diff --git a/scripts/run-build.sh b/scripts/run-build.sh index d6e6204..b09721f 100755 --- a/scripts/run-build.sh +++ b/scripts/run-build.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -o xtrace +set -euo pipefail DIR=$(dirname "$(readlink -f "$0")")