You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ko...@apache.org on 2022/01/15 12:32:54 UTC

[couchdb-ci] branch drop-obsoleete-distros-and-travis created (now 6064d75)

This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a change to branch drop-obsoleete-distros-and-travis
in repository https://gitbox.apache.org/repos/asf/couchdb-ci.git.


      at 6064d75  Expunge Travis from docs

This branch includes the following new commits:

     new d9a5625  Drop support for Ubuntu 16.04
     new d3492ea  Remove leftovers from other obsolete distros
     new 6064d75  Expunge Travis from docs

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[couchdb-ci] 03/03: Expunge Travis from docs

Posted by ko...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a commit to branch drop-obsoleete-distros-and-travis
in repository https://gitbox.apache.org/repos/asf/couchdb-ci.git

commit 6064d75f22d343804a2f18afbb0eaa52c904eef5
Author: Adam Kocoloski <ko...@apache.org>
AuthorDate: Sat Jan 15 07:30:55 2022 -0500

    Expunge Travis from docs
---
 .travis.yml | 50 --------------------------------------------------
 README.md   |  8 +++-----
 2 files changed, 3 insertions(+), 55 deletions(-)

diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 4e06898..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-dist: xenial
-
-language: minimal
-
-services:
-  - docker
-
-# Avoid double build on PRs (See https://github.com/travis-ci/travis-ci/issues/1147)
-branches:
-  only:
-    - master
-
-env:
-  matrix:
-    - PLATFORM=debian-stretch TARGET=base
-    - PLATFORM=debian-stretch TARGET=platform
-    #- PLATFORM=debian-stretch TARGET=couch
-    # xplat commented out -- too slow on Travis
-    #- CONTAINERARCH=ppc64le PLATFORM=debian-stretch TARGET=base
-    #- CONTAINERARCH=ppc64le PLATFORM=debian-stretch TARGET=platform
-    #- CONTAINERARCH=ppc64le PLATFORM=debian-stretch TARGET=couch
-    - PLATFORM=debian-buster TARGET=base
-    - PLATFORM=debian-buster TARGET=platform
-    #- ERLANGVERSION=20.3.8.22-1 PLATFORM=debian-buster TARGET=couch
-    # xplat commented out -- too slow on Travis
-    #- CONTAINERARCH=arm64v8 PLATFORM=debian-buster TARGET=base
-    #- CONTAINERARCH=arm64v8 PLATFORM=debian-buster TARGET=platform
-    #- CONTAINERARCH=arm64v8 PLATFORM=debian-buster TARGET=couch
-    - PLATFORM=ubuntu-xenial TARGET=base
-    - PLATFORM=ubuntu-xenial TARGET=platform
-    #- PLATFORM=ubuntu-xenial TARGET=couch
-    - PLATFORM=ubuntu-bionic TARGET=base
-    - PLATFORM=ubuntu-bionic TARGET=platform
-    #- PLATFORM=ubuntu-bionic TARGET=couch
-    - PLATFORM=centos-6 TARGET=base
-    - PLATFORM=centos-6 TARGET=platform
-    #- PLATFORM=centos-6 TARGET=couch
-    - PLATFORM=centos-7 TARGET=base
-    - PLATFORM=centos-7 TARGET=platform
-    #- PLATFORM=centos-7 TARGET=couch
-    - PLATFORM=centos-8 TARGET=base
-    - PLATFORM=centos-8 TARGET=platform
-    #- PLATFORM=centos-8 TARGET=couch
-
-before_install:
-  - docker --version
-  - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
-
-script:
-  - CONTAINERARCH=${CONTAINERARCH} ERLANGVERSION=${ERLANGVERSION} ./build.sh ${TARGET} ${PLATFORM}
diff --git a/README.md b/README.md
index 8f9e6a4..67973be 100644
--- a/README.md
+++ b/README.md
@@ -8,9 +8,7 @@ The main purpose of this repository is to provide scripts that:
 
 It intends to cover a range of both operating systems (Linux, macOS, BSD, Windows) and Erlang versions (17.x, 18.x, 19.x, etc.)
 
-These images are used by [Apache Jenkins CI](https://builds.apache.org/blue/organizations/jenkins/CouchDB/branches/) to build CouchDB with every checkin to `main` or a release branch (*e.g.*, `2.3.0`).
-
-CouchDB's CI build philosophy is to use Travis (with `kerl`) to validate CouchDB against different Erlang versions, and to use Jenkins to validate CouchDB against different OSes and architectures. Where possible, Jenkins also auto-builds convenience binaries or packages. The eventual goal is that these auto-built binaries/packages/Docker images will be auto-pushed to our distribution repos for downstream consumption.
+These images are used by [Apache Jenkins CI](https://ci-couchdb.apache.org/blue/organizations/jenkins/pipelines) to build CouchDB with every checkin to `main`, `3.x`, a release branch (*e.g.*, `2.3.0`), or an open Pull Request. CouchDB's CI build philosophy is to validate CouchDB against different Erlang versions with each commit to a Pull Request, and to validate CouchDB against different OSes and architectures on merged commits to `main`, `3.x`, and release branches. Where possible, Je [...]
 
 # Supported Configurations (updated 2021-03-11)
 
@@ -143,9 +141,9 @@ After building the base image as above, head over to the [apache/couchdb-pkg](ht
 
 1. Update the build scripts in the `bin/` directory to install the dependencies correctly on your new OS/version/platform. Push a PR with these changes.
 1. Copy and customize an appropriate Dockerfile in the `dockerfiles` directory for your new OS.
-1. If a supported SpiderMonkey library is not available on the target platform, build a base image using `./build.sh base <distro>-<version>`. Solve any problems with the build process here. Add your new platform combination to the `.travis.yml` file, then push a PR with these changes.
+1. If a supported SpiderMonkey library is not available on the target platform, build a base image using `./build.sh base <distro>-<version>`. Solve any problems with the build process here.
 1. Using the [apache/couchdb-pkg](https://github.com/apache/couchdb-pkg) repository, validate you can build the JS package. Fix any problems in that repo that arise and raise a new PR. Open a new issue on that PR requesting that the JS packages be made available through the CouchDB repository/download infrastructure.
-1. Build a full platform image with `./build.sh platform <distro>-<version>`. Solve any problems with the build process here. Add your new platform combination to the `.travis.yml` file, then push a PR with these changes.
+1. Build a full platform image with `./build.sh platform <distro>-<version>`. Solve any problems with the build process here.
 1. Submit a PR against the [apache/couchdb](https://github.com/apache/couchdb) repository, adding the new platform to the top level `Jenkinsfile`. Ask if you need help.
 
 ---

[couchdb-ci] 02/03: Remove leftovers from other obsolete distros

Posted by ko...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a commit to branch drop-obsoleete-distros-and-travis
in repository https://gitbox.apache.org/repos/asf/couchdb-ci.git

commit d3492ea6c0bd8b0e13ad86393737deeba545e85d
Author: Adam Kocoloski <ko...@apache.org>
AuthorDate: Sat Jan 15 07:29:39 2022 -0500

    Remove leftovers from other obsolete distros
---
 bin/apt-dependencies.sh   |  2 +-
 dockerfiles/centos-6      | 60 -----------------------------------------------
 dockerfiles/ubuntu-trusty | 56 -------------------------------------------
 3 files changed, 1 insertion(+), 117 deletions(-)

diff --git a/bin/apt-dependencies.sh b/bin/apt-dependencies.sh
index e4d4c65..f8b6394 100755
--- a/bin/apt-dependencies.sh
+++ b/bin/apt-dependencies.sh
@@ -42,7 +42,7 @@ apt-get update && apt-get install --no-install-recommends -y lsb-release
 SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 . ${SCRIPTPATH}/detect-arch.sh >/dev/null
 . ${SCRIPTPATH}/detect-os.sh >/dev/null
-debians='(wheezy|jessie|stretch|buster)'
+debians='(jessie|stretch|buster)'
 ubuntus='(bionic|focal)'
 echo "Detected Ubuntu/Debian version: ${VERSION_CODENAME}   arch: ${ARCH}"
 
diff --git a/dockerfiles/centos-6 b/dockerfiles/centos-6
deleted file mode 100644
index cb1a2c1..0000000
--- a/dockerfiles/centos-6
+++ /dev/null
@@ -1,60 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-
-# NOTE: These are intended to be built using the arguments as
-# described in ../build.sh. See that script for more details.
-
-FROM centos:6
-
-# Choose whether to install SpiderMonkey 1.8.5, default yes
-ARG js=js
-# Choose whether to install Erlang, default yes
-ARG erlang=erlang
-# Select version of Node, Erlang and Elixir to install
-ARG erlangversion=20.3.8.26-1
-ARG elixirversion=v1.9.4
-ARG nodeversion=14
-
-# Create Jenkins user and group
-RUN groupadd --gid 910 jenkins; \
-  useradd --uid 910 --gid jenkins --create-home jenkins
-
-# Copy couchdb-ci repo into root's home directory
-ADD --chown=root:root bin /root/couchdb-ci/bin/
-ADD --chown=root:root files /root/couchdb-ci/files/
-
-# Jenkins builds in /usr/src/couchdb.
-RUN mkdir -p /usr/src/couchdb; \
-  chown -R jenkins:jenkins /usr/src/couchdb
-
-# Add /usr/local/lib to global LD_LIBRARY_PATH for CentOS
-RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf
-
-# Install all dependencies, and optionally SM 1.8.5
-# This allows us to use the same Dockerfile for building SM
-RUN ERLANGVERSION=$erlangversion \
-  ELIXIRVERSION=$elixirversion \
-  NODEVERSION=$nodeversion \
-  /root/couchdb-ci/bin/install-dependencies.sh $js $erlang
-
-# Allow Jenkins to sudo
-RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins
-
-USER jenkins
-
-# overwrite this with 'CMD []' in a dependent Dockerfile
-CMD ["/bin/bash"]
-
diff --git a/dockerfiles/ubuntu-trusty b/dockerfiles/ubuntu-trusty
deleted file mode 100644
index 323b167..0000000
--- a/dockerfiles/ubuntu-trusty
+++ /dev/null
@@ -1,56 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-
-# NOTE: These are intended to be built using the arguments as
-# described in ../build.sh. See that script for more details.
-
-FROM ubuntu:trusty
-
-# Choose whether to install SpiderMonkey 1.8.5, default yes
-ARG js=js
-# Choose whether to install Erlang, default yes
-ARG erlang=erlang
-# Select version of Node, Erlang and Elixir to install
-ARG erlangversion=20.3.8.26-1
-ARG elixirversion=v1.9.4
-ARG nodeversion=14
-
-# Create Jenkins user and group
-RUN groupadd --gid 910 jenkins; \
-  useradd --uid 910 --gid jenkins --create-home jenkins
-
-# Copy couchdb-ci repo into root's home directory
-ADD --chown=root:root bin /root/couchdb-ci/bin/
-ADD --chown=root:root files /root/couchdb-ci/files/
-
-# Jenkins builds in /usr/src/couchdb.
-RUN mkdir -p /usr/src/couchdb; \
-  chown -R jenkins:jenkins /usr/src/couchdb
-
-# Install all dependencies, and optionally SM 1.8.5
-# This allows us to use the same Dockerfile for building SM
-RUN ERLANGVERSION=$erlangversion \
-  ELIXIRVERSION=$elixirversion \
-  NODEVERSION=$nodeversion \
-  /root/couchdb-ci/bin/install-dependencies.sh $js $erlang
-
-# Allow Jenkins to sudo
-RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins
-
-USER jenkins
-
-# overwrite this with 'CMD []' in a dependent Dockerfile
-CMD ["/bin/bash"]

[couchdb-ci] 01/03: Drop support for Ubuntu 16.04

Posted by ko...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kocolosk pushed a commit to branch drop-obsoleete-distros-and-travis
in repository https://gitbox.apache.org/repos/asf/couchdb-ci.git

commit d9a5625d13439a1d14d8c60b2a54a13ac45cf746
Author: Adam Kocoloski <ko...@apache.org>
AuthorDate: Sat Jan 15 07:19:17 2022 -0500

    Drop support for Ubuntu 16.04
    
    As proposed on dev@, removing support for distros that have exited
    vendor LTS window. For Xenial this happened in April 2021.
---
 README.md                  |  1 -
 bin/apt-dependencies.sh    | 22 +-----------------
 build.sh                   |  2 +-
 dockerfiles/ubuntu-xenial  | 56 ----------------------------------------------
 pull-all-couchdbdev-docker |  1 -
 5 files changed, 2 insertions(+), 80 deletions(-)

diff --git a/README.md b/README.md
index 3c1e16b..8f9e6a4 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,6 @@ CouchDB's CI build philosophy is to use Travis (with `kerl`) to validate CouchDB
 ----------------|-------------|--------------------|------------------|--------------------
 **debian**      | stretch     | 19.3.6, 20.3.8.25  | `x86_64`, `arm64v8`        | :heavy_check_mark:
 **debian**      | buster      | 20.3.8.25          | `x86_64`, `arm64v8`                    | :heavy_check_mark:
-**ubuntu**      | xenial      | 20.3.8.25          | `x86_64`         | :heavy_check_mark:
 **ubuntu**      | bionic      | 20.3.8.25          | `x86_64`         | :heavy_check_mark:
 **centos**      | 6           | 20.3.8.25          | `x86_64`         | :heavy_check_mark:
 **centos**      | 7           | 20.3.8.25          | `x86_64`         | :heavy_check_mark:
diff --git a/bin/apt-dependencies.sh b/bin/apt-dependencies.sh
index ca9cd0e..e4d4c65 100755
--- a/bin/apt-dependencies.sh
+++ b/bin/apt-dependencies.sh
@@ -43,7 +43,7 @@ SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 . ${SCRIPTPATH}/detect-arch.sh >/dev/null
 . ${SCRIPTPATH}/detect-os.sh >/dev/null
 debians='(wheezy|jessie|stretch|buster)'
-ubuntus='(xenial|bionic|focal)'
+ubuntus='(bionic|focal)'
 echo "Detected Ubuntu/Debian version: ${VERSION_CODENAME}   arch: ${ARCH}"
 
 # bionic Docker image seems to be missing /etc/timezone...
@@ -74,10 +74,6 @@ apt-get install --no-install-recommends -y apt-transport-https curl git pkg-conf
     vim-tiny screen procps dirmngr ssh-client
 
 
-if [ ${VERSION_CODENAME} == "xenial" ]; then
-  apt-get install --no-install-recommends -y dh-systemd || true
-fi
-
 # createrepo_c or createrepo, depending on packaging support
 if [ ${VERSION_CODENAME} == "bullseye" ]; then
   apt-get install --no-install-recommends -y createrepo-c || true
@@ -87,18 +83,6 @@ else
   apt-get install --no-install-recommends -y createrepo || true
 fi
 
-if [ ${VERSION_CODENAME} == "xenial" ]; then
-  apt remove -y python3-venv
-  apt install --no-install-recommends -y software-properties-common
-  add-apt-repository ppa:deadsnakes/ppa
-  apt-get update
-  apt install --no-install-recommends -y python3.7 python3.7-dev python3.7-venv
-  rm /usr/bin/python3
-  ln -s /usr/bin/python3.7 /usr/bin/python3
-  pip3 install --upgrade pip
-  pip3 install setuptools
-fi
-
 # Node.js
 if [ "${ARCH}" == "ppc64le" -o "${ARCH}" == "s390x" ]; then
   apt-get install --no-install-recommends -y nodejs npm
@@ -155,10 +139,6 @@ if [[ ${VERSION_CODENAME} =~ ${debians} ]]; then
   fi
 elif [[ ${VERSION_CODENAME} =~ ${ubuntus} ]]; then
   cp ${SCRIPTPATH}/../files/ubuntu.profile /usr/share/lintian/profiles/couchdb/main.profile
-  if [ ${VERSION_CODENAME} == "xenial" ]; then
-    # add rule to suppress python-script-but-no-python-dep
-    sed -i -e 's/Disable-Tags: /Disable-Tags: python-script-but-no-python-dep, /' /usr/share/lintian/profiles/couchdb/main.profile
-  fi
 else
   echo "Unrecognized Debian-like release: ${VERSION_CODENAME}! Skipping lintian work."
 fi
diff --git a/build.sh b/build.sh
index d45d979..611d2fc 100755
--- a/build.sh
+++ b/build.sh
@@ -43,7 +43,7 @@ SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 #    https://access.redhat.com/support/policy/updates/errata/ (same for CentOS)
 #    also https://endoflife.software/operating-systems/linux/centos
 DEBIANS="debian-stretch debian-buster debian-bullseye"
-UBUNTUS="ubuntu-xenial ubuntu-bionic ubuntu-focal"
+UBUNTUS="ubuntu-bionic ubuntu-focal"
 CENTOSES="centos-7 centos-8"
 ERLANGALL_BASE="debian-bullseye"
 XPLAT_BASE="debian-buster"
diff --git a/dockerfiles/ubuntu-xenial b/dockerfiles/ubuntu-xenial
deleted file mode 100644
index 12a7073..0000000
--- a/dockerfiles/ubuntu-xenial
+++ /dev/null
@@ -1,56 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-
-# NOTE: These are intended to be built using the arguments as
-# described in ../build.sh. See that script for more details.
-
-FROM ubuntu:xenial
-
-# Choose whether to install SpiderMonkey 1.8.5, default yes
-ARG js=js
-# Choose whether to install Erlang, default yes
-ARG erlang=erlang
-# Select version of Node, Erlang and Elixir to install
-ARG erlangversion=20.3.8.26-1
-ARG elixirversion=v1.9.4
-ARG nodeversion=14
-
-# Create Jenkins user and group
-RUN groupadd --gid 910 jenkins; \
-  useradd --uid 910 --gid jenkins --create-home jenkins
-
-# Copy couchdb-ci repo into root's home directory
-ADD --chown=root:root bin /root/couchdb-ci/bin/
-ADD --chown=root:root files /root/couchdb-ci/files/
-
-# Jenkins builds in /usr/src/couchdb.
-RUN mkdir -p /usr/src/couchdb; \
-  chown -R jenkins:jenkins /usr/src/couchdb
-
-# Install all dependencies, and optionally SM 1.8.5
-# This allows us to use the same Dockerfile for building SM
-RUN ERLANGVERSION=$erlangversion \
-  ELIXIRVERSION=$elixirversion \
-  NODEVERSION=$nodeversion \
-  /root/couchdb-ci/bin/install-dependencies.sh $js $erlang
-
-# Allow Jenkins to sudo
-RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins
-
-USER jenkins
-
-# overwrite this with 'CMD []' in a dependent Dockerfile
-CMD ["/bin/bash"]
diff --git a/pull-all-couchdbdev-docker b/pull-all-couchdbdev-docker
index 050db39..1521db7 100644
--- a/pull-all-couchdbdev-docker
+++ b/pull-all-couchdbdev-docker
@@ -12,7 +12,6 @@ couchdbci-centos:8-erlang-20.3.8.26-1
 couchdbci-centos:7-erlang-20.3.8.26-1
 couchdbci-ubuntu:focal-erlang-20.3.8.26-1
 couchdbci-ubuntu:bionic-erlang-20.3.8.26-1
-couchdbci-ubuntu:xenial-erlang-20.3.8.26-1
 )
 
 # Base images are used for building old libmozjs, primarily.