The existing CI tasks run an uncommon work flow: building distributable packages
on each operating system. A more common work flow end users will be following
with the portable source tarball is simply building and installing it. This
change adds a job that does this, to provide a safeguard against breaking this
work flow in future.
The added job runs on Ubuntu 21.04. The intent is to bump this job to the latest
each time there is a new Ubuntu release. There is no companion test job for the
build job because we assume the existing test jobs are providing sufficient
coverage.
Closes #2073.
variables:
IMAGE: ubuntu-21.04
+out-of-source-build:
+ <<: *deb_build_definition
+ script:
+ - logfile=`mktemp`
+ - ci/out-of-source-build.sh |& tee $logfile
+ - echo "$CI_JOB_NAME-warnings `grep -c 'warning:' $logfile`" > metrics.txt
+ - rm $logfile
+ - cat metrics.txt
+ needs:
+ - job: docker_build_ubuntu-21.04
+ artifacts: false
+ - job: portable-source
+ artifacts: true
+ tags:
+ - linux
+ artifacts:
+ when: on_success
+ expire_in: 1 week
+ reports:
+ metrics: metrics.txt
+ variables:
+ IMAGE: ubuntu-21.04
+
macos-autotools-build:
<<: *macos_build_definition
before_script:
--- /dev/null
+#!/usr/bin/env bash
+
+# this script does something close to the work flow end users may follow when
+# building Graphviz
+
+set -x
+set -e
+set -o pipefail
+
+# output some info for debugging
+uname -rms
+cat /etc/os-release
+
+GV_VERSION=$(cat VERSION)
+
+# unpack the portable source tarball
+tar xfz graphviz-${GV_VERSION}.tar.gz
+
+# setup a directory for building in
+mkdir build
+cd build
+../graphviz-${GV_VERSION}/configure
+
+# build Graphviz
+make
+
+# install Graphviz
+make install