Skip to content

[#47] Re-enable compat tests. #403

[#47] Re-enable compat tests.

[#47] Re-enable compat tests. #403

Workflow file for this run

#
# 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