[#47] Re-enable compat
tests.
#403
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# GitHub actions for building and testing. | |
# | |
# For best support, use `-latest` for runners spinning up containers. More at | |
# https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners. | |
name: Docker | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
concurrency: | |
group: docker-${{ github.ref }} | |
cancel-in-progress: true | |
# Using a job name that doesn't contain the OS name, to minimize the risk of | |
# confusion with the OS names of the containers, which are the relevant ones. | |
jobs: | |
linux: | |
runs-on: ubuntu-latest | |
container: ${{ matrix.container }} | |
strategy: | |
fail-fast: false | |
matrix: | |
# Alpine Linux 3.15 has musl 1.2.2, Amazon Linux 2 has glibc 2.26. | |
container: [ 'alpine:3.15', 'amazonlinux:2' ] | |
timeout-minutes: 60 | |
steps: | |
# OpenSSL gets updated by apk, but that is the Alpine way, so it's fine. | |
- name: Alpine setup | |
if: startsWith(matrix.container, 'alpine') | |
run: | | |
apk upgrade -U | |
apk add git curl bash gcc make m4 patch musl-dev linux-headers lddtree shadow openssh-client file unzip perl g++ musl-locales dejagnu | |
apk del util-linux-dev | |
curl --output /usr/bin/paxctl https://bin.chevah.com:20443/third-party-stuff/alpine/paxctl-3.12 | |
chmod +x /usr/bin/paxctl | |
- name: Amazon setup | |
if: startsWith(matrix.container, 'amazonlinux') | |
run: | | |
yum -y upgrade | |
yum -y install git-core gcc make m4 patch tar unzip perl perl-Test-Simple perl-IPC-Cmd xz gcc-c++ dejagnu bzip2 | |
# To avoid linking against libdb and gdmb libraries on Amazon Linux 2. | |
# Can't simply uninstall libdb-devel and gdmb-devel, they are required by perl-IPC-Cmd. | |
rm -v /usr/include/libdb/db.h | |
rm -v /usr/include/gdbm.h | |
# This is for avoiding building the NIS module with Python 3.12. | |
rm -v /usr/include/rpc/rpc.h | |
- name: Ubuntu setup | |
if: startsWith(matrix.container, 'ubuntu') | |
run: | | |
apt update | |
apt --yes dist-upgrade | |
apt --yes install wget curl gcc make m4 patch openssh-client unzip git libtest-simple-perl xz-utils g++ dejagnu | |
# actions/checkout doesn't work on Amazon Linux 2, requires glibc 2.27. | |
- name: Clone repo independently | |
run: | | |
git clone https://github.com/chevah/pythia.git | |
cd pythia | |
git checkout ${GITHUB_HEAD_REF} | |
- name: Chevah user setup | |
run: | | |
useradd -g adm -s /bin/bash -m chevah | |
echo '%adm ALL=NOPASSWD: ALL' > /etc/sudoers | |
- name: Build Pythia | |
timeout-minutes: 30 | |
run: | | |
chown -R chevah pythia | |
cd pythia | |
su chevah -c "./build.sh build" | |
- name: Test Pythia | |
timeout-minutes: 5 | |
run: | | |
cd pythia | |
su chevah -c "./build.sh test" | |
- name: Test compat | |
timeout-minutes: 5 | |
env: | |
CODECOV_TOKEN: local | |
run: | | |
cd pythia | |
su chevah -c "./build.sh compat" | |
# Using `~/` is problematic under Docker, use `/root/`. | |
# Remove key in same step to avoid leaving it on disk if publishing fails. | |
- name: Upload testing package | |
timeout-minutes: 5 | |
run: | | |
mkdir -pv /root/.ssh/ | |
cd pythia | |
touch priv_key | |
chmod 600 priv_key | |
echo "${{ secrets.SFTPPLUS_BIN_PRIV_KEY }}" > priv_key | |
echo "${{ secrets.SFTPPLUS_BIN_HOST_KEY }}" > /root/.ssh/known_hosts | |
./publish_dist.sh ; rm priv_key | |
# If one of the above steps fails, fire up tmate for remote debugging. | |
# Not all platforms are supported by tmate. | |
# Currently not supported: Alpine, Amazon 2, CentOS 5 (no glibc or too old). | |
- name: Tmate debug on failure | |
if: ${{ !cancelled() && runner.debug }} | |
uses: chevah/action-tmate@v3 | |
with: | |
sudo: false | |
limit-access-to-actor: true |