Fix compilation with DEBUG_SK enabled #458
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
name: C/C++ CI self-hosted | |
on: | |
push: | |
paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/selfhosted.yml' ] | |
jobs: | |
selfhosted: | |
name: "${{ matrix.target }} ${{ matrix.config }}" | |
if: github.repository == 'openssh/openssh-portable-selfhosted' | |
runs-on: ${{ matrix.host }} | |
timeout-minutes: 600 | |
env: | |
DEBUG_ACTIONS: false | |
HOST: ${{ matrix.host }} | |
TARGET_HOST: ${{ matrix.target }} | |
TARGET_CONFIG: ${{ matrix.config }} | |
TARGET_DOMAIN: ${{ startsWith(matrix.host, 'libvirt') && format('{0}-{1}-{2}', matrix.target, matrix.config, github.run_id) || matrix.target }} | |
EPHEMERAL: ${{ startsWith(matrix.host, 'libvirt') }} | |
PERSISTENT: ${{ startsWith(matrix.host, 'persist') }} | |
REMOTE: ${{ startsWith(matrix.host, 'remote') }} | |
VM: ${{ startsWith(matrix.host, 'libvirt') || startsWith(matrix.host, 'persist') }} | |
SSHFS: ${{ startsWith(matrix.host, 'libvirt') || startsWith(matrix.host, 'persist') || startsWith(matrix.host, 'remote') }} | |
BIGENDIAN: ${{ matrix.target == 'aix51' || matrix.target == 'fbsd14-ppc64' || matrix.target == 'openwrt-mips' }} | |
strategy: | |
fail-fast: false | |
# We use a matrix in two parts: firstly all of the VMs are tested with the | |
# default config. "target" corresponds to a label associated with the | |
# worker. The default is an ephemeral VM running under libvirt. | |
matrix: | |
target: | |
- alpine | |
- centos7 | |
- debian-i386 | |
- dfly30 | |
- dfly48 | |
- dfly60 | |
- dfly62 | |
- dfly64 | |
- fbsd10 | |
- fbsd12 | |
- fbsd13 | |
- fbsd14 | |
- nbsd3 | |
- nbsd4 | |
- nbsd8 | |
- nbsd9 | |
- nbsd10 | |
- obsd51 | |
- obsd67 | |
- obsd72 | |
- obsd73 | |
- obsd74 | |
- obsdsnap | |
- obsdsnap-i386 | |
- omnios | |
- openindiana | |
- ubuntu-2204 | |
config: | |
- default | |
host: | |
- libvirt | |
include: | |
# Long-running/slow tests have access to high priority runners. | |
- { target: aix51, config: default, host: libvirt-hipri } | |
- { target: fbsd14-ppc64, config: default, host: libvirt-hipri } | |
- { target: openindiana, config: pam, host: libvirt-hipri } | |
- { target: sol10, config: default, host: libvirt-hipri } | |
- { target: sol10, config: pam, host: libvirt-hipri } | |
- { target: sol11, config: default, host: libvirt-hipri } | |
- { target: sol11, config: pam-krb5, host: libvirt-hipri } | |
- { target: sol11, config: sol64, host: libvirt-hipri } | |
# Then we include extra libvirt test configs. | |
- { target: centos7, config: pam, host: libvirt } | |
- { target: debian-i386, config: pam, host: libvirt } | |
- { target: dfly30, config: without-openssl, host: libvirt} | |
- { target: dfly48, config: pam ,host: libvirt } | |
- { target: dfly58, config: pam, host: libvirt } | |
- { target: dfly60, config: pam, host: libvirt } | |
- { target: dfly62, config: pam, host: libvirt } | |
- { target: dfly64, config: pam, host: libvirt } | |
- { target: fbsd10, config: pam, host: libvirt } | |
- { target: fbsd12, config: pam, host: libvirt } | |
- { target: fbsd13, config: pam, host: libvirt } | |
- { target: fbsd14, config: pam, host: libvirt } | |
- { target: nbsd8, config: pam, host: libvirt } | |
- { target: nbsd9, config: pam, host: libvirt } | |
- { target: nbsd10, config: pam, host: libvirt } | |
- { target: omnios, config: pam, host: libvirt } | |
# ARM64 VMs | |
- { target: obsd-arm64, config: default, host: libvirt-arm64 } | |
# VMs with persistent disks that have their own runner. | |
- { target: win10, config: default, host: persist-win10 } | |
- { target: win10, config: cygwin-release, host: persist-win10 } | |
# Physical hosts with native runners. | |
- { target: ARM, config: default, host: ARM } | |
- { target: ARM64, config: default, host: ARM64 } | |
- { target: ARM64, config: pam, host: ARM64 } | |
# Physical hosts with remote runners. | |
- { target: debian-riscv64, config: default, host: remote-debian-riscv64 } | |
- { target: openwrt-mips, config: default, host: remote-openwrt-mips } | |
- { target: openwrt-mipsel, config: default, host: remote-openwrt-mipsel } | |
steps: | |
- name: unmount stale workspace | |
if: env.SSHFS == 'true' | |
run: fusermount -u ${GITHUB_WORKSPACE} || true | |
working-directory: ${{ runner.temp }} | |
- name: shutdown VM if running | |
if: env.VM == 'true' | |
run: vmshutdown | |
- uses: actions/checkout@main | |
- name: autoreconf | |
run: autoreconf | |
- name: startup VM | |
if: env.VM == 'true' | |
run: vmstartup | |
working-directory: ${{ runner.temp }} | |
- name: copy and mount workspace | |
if: env.SSHFS == 'true' | |
run: sshfs_mount | |
working-directory: ${{ runner.temp }} | |
- name: configure | |
run: vmrun ./.github/configure.sh ${{ matrix.config }} | |
# - name: save config | |
# uses: actions/upload-artifact@main | |
# with: | |
# name: ${{ matrix.target }}-${{ matrix.config }}-config | |
# path: config.h | |
- name: make clean | |
run: vmrun make clean | |
- name: make | |
run: vmrun make | |
- name: make tests | |
run: vmrun ./.github/run_test.sh ${{ matrix.config }} | |
timeout-minutes: 600 | |
- name: save logs | |
if: failure() | |
uses: actions/upload-artifact@main | |
with: | |
name: ${{ matrix.target }}-${{ matrix.config }}-logs | |
path: | | |
config.h | |
config.log | |
regress/*.log | |
regress/log/* | |
regress/valgrind-out/ | |
- name: unmount workspace | |
if: always() && env.SSHFS == 'true' | |
run: fusermount -u ${GITHUB_WORKSPACE} || true | |
working-directory: ${{ runner.temp }} | |
- name: bigendian interop - mount regress | |
if: env.SSHFS == 'true' && env.BIGENDIAN == 'true' | |
run: | | |
set -x | |
vmrun sudo chown -R $LOGNAME ~/$(basename ${GITHUB_WORKSPACE}) || true | |
vmrun "cd $(basename ${GITHUB_WORKSPACE}/regress) && sudo make clean" | |
sshfs_mount regress | |
vmrun "sudo mkdir -p $(dirname ${GITHUB_WORKSPACE})" | |
vmrun "sudo ln -s ~/$(basename ${GITHUB_WORKSPACE}) ${GITHUB_WORKSPACE}" | |
working-directory: ${{ runner.temp }} | |
- name: bigendian interop - host build | |
if: env.SSHFS == 'true' && env.BIGENDIAN == 'true' | |
run: | | |
set -x | |
./.github/configure.sh ${{ matrix.config }} | |
pwd | |
ls -ld regress || true | |
ls -l regress/check-perm || true | |
make clean | |
make | |
- name: bigendian interop - test | |
if: env.SSHFS == 'true' && env.BIGENDIAN == 'true' | |
env: | |
TEST_SSH_UNSAFE_PERMISSIONS: 1 | |
run: | | |
set -x | |
echo "#!/bin/sh" >remote_sshd | |
echo "exec /usr/bin/ssh ${TARGET_DOMAIN} exec /home/builder/$(basename ${GITHUB_WORKSPACE})/sshd "'$@' >>remote_sshd | |
chmod 755 remote_sshd | |
make t-exec TEST_SSH_SSHD=`pwd`/remote_sshd LTESTS="try-ciphers kextype keytype" | |
- name: bigendian interop - save logs | |
if: failure() && env.BIGENDIAN == 'true' | |
uses: actions/upload-artifact@main | |
with: | |
name: ${{ matrix.target }}-${{ matrix.config }}-interop-logs | |
path: | | |
config.h | |
config.log | |
regress/*.log | |
regress/log/* | |
- name: bigendian interop - unmount regress | |
if: always() && env.SSHFS == 'true' && env.BIGENDIAN == 'true' | |
run: fusermount -u ${GITHUB_WORKSPACE}/regress || true | |
working-directory: ${{ runner.temp }} | |
- name: shutdown VM | |
if: always() && env.VM == 'true' | |
run: vmshutdown |