This folder is for scripts for testing the functionality of this repository. All tests assume being run from the repository root (the parent directory) and are shell scripts that exit with a non-zero value on failure.
Runs yamllint
on:
config.yml
.yamllint
, which controls configuration ofyamllint
itself- CI configuration files if they exist, e.g.,
.travis.yml
and.circleci/config.yml
Runs shellcheck
on the bash scripts in:
Although the goal is to have no warnings, exceptions have been grandfathered in for some scripts to be fixed later.
These tests go through the RPM creation process, with a focus on creating
the latest source archives and RPMs from Hootenanny's
master
branch
and uploading them to the S3 masterment repository.
The following environment variables may be used to modify the test
behavior. For example, it's common to set REPO_PREFIX=el7/master-test
so that the current S3 repository at el7/master
is not modified
when adding new RPM tests. CircleCI's AWS user requires access to
all S3 buckets and prefixes if they're modified.
ARCHIVE_BUCKET
: S3 bucket to query for Hootenanny source archive, defaults tohoot-archives
.ARCHIVE_PREFIX
: S3 bucket prefix for Hootenanny source archives, defaults tocircle/master
(Hootenanny branch name).REPO_BUCKET
: The S3 bucket to place yum repositories, defaults tohoot-repo
.REPO_PREFIX
: S3 bucket prefix for yum repository, defaults toel7/master
.
This will create a Hootenanny RPM from the latest source archive if
it doesn't already exist in the S3 repository. The RPM is created
using the shell scripts using the latest
rpmbuild-hoot-release
image from the Docker Hub.
This ensures that the RPMs generated from create-rpm.sh
can be
installed on the latest
run-base-release
image from the Docker Hub.
This test installs the latest RPM from the master repository
and ensures the upgrade process works by installing the more
recent RPMs from create-rpm.sh
on the
run-base-release
image from the Docker Hub.
This test will update the S3 repository with the RPMs created
by create-rpm.sh
, pruning the oldest release in the process
(10 RPM releases are kept in the repository). A Slack notification
is sent upon successful update.