GitHub: Complete split of build.yml

This commit is contained in:
Nicolas Williams
2022-01-14 13:50:50 -06:00
parent 02f6147bf1
commit 66d6998e3e
5 changed files with 9 additions and 503 deletions

View File

@@ -1,195 +0,0 @@
name: Build
on:
push:
paths:
- '!docs/**'
- '!**.md'
- '!**.[1-9]'
- '**.[chly]'
- '**.hin'
- '**.in'
- '**.am'
- '**.m4'
- '**.ac'
- '**.pl'
- '**.py'
- '**.asn1'
- '**.opt'
- '**/NTMakefile'
- '**/COPYING'
- '**/INSTALL'
- '**/README*'
- '.github/workflows/build.yml'
- '!appveyor.yml'
- '!.travis.yml'
pull_request:
paths:
- '!docs/**'
- '!**.md'
- '!**.[1-9]'
- '**.[chly]'
- '**.hin'
- '**.in'
- '**.am'
- '**.m4'
- '**.ac'
- '**.pl'
- '**.py'
- '**.asn1'
- '**.opt'
- '**/NTMakefile'
- '**/COPYING'
- '**/INSTALL'
- '**/README*'
- '.github/workflows/build.yml'
- '!appveyor.yml'
- '!.travis.yml'
jobs:
unix:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
name: [linux-clang, linux-gcc]
include:
- name: linux-clang
os: ubuntu-18.04
compiler: clang
- name: linux-gcc
os: ubuntu-18.04
compiler: gcc
steps:
- name: Clone repository
uses: actions/checkout@v1
- name: Install packages
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt-get update -qq
sudo apt-get install -y bison comerr-dev flex libcap-ng-dev libdb-dev libedit-dev libjson-perl libldap2-dev libncurses5-dev libperl4-corelibs-perl libsqlite3-dev libkeyutils-dev pkg-config python ss-dev texinfo unzip netbase keyutils ldap-utils gdb apport curl libmicrohttpd-dev jq valgrind
# Temporary workaround for:
# https://github.com/actions/virtual-environments/issues/3185
sudo hostname localhost
- name: Build
env:
CC: ${{ matrix.compiler }}
MAKEVARS: ${{ matrix.makevars }}
CONFIGURE_OPTS: ${{ matrix.configureopts }}
run: |
/bin/sh ./autogen.sh
mkdir build
cd build
../configure --srcdir=`dirname "$PWD"` --enable-maintainer-mode --enable-developer --with-ldap $CONFIGURE_OPTS --prefix=$HOME/inst CFLAGS="-Wno-error=shadow -Wno-error=bad-function-cast -Wno-error=unused-function -Wno-error=unused-result -Wno-error=deprecated-declarations"
ulimit -c unlimited
make -j4
make check
make install
- name: Valgrind output
run: |
find . -name \*.log -print0|xargs -0 grep '^==[1-9]' || true
- name: Core dump stacks
run: |
echo "thread apply all bt" > /tmp/x
find . -name core -print | while read core; do gdb -batch -x x `file "$core"|sed -e "s/^[^']*'//" -e "s/[ '].*$//"` "$core"; done
if [ "$(find . -name core -print | wc -l)" -gt 0 ]; then false; fi
- name: Test logs
if: ${{ failure() }}
run: |
find build -name \*.trs|xargs grep -lw FAIL|sed -e 's/trs$/log/'|xargs cat
- name: distclean
run: |
cd build
make distclean
if [ "$(git ls-files -o|grep -v ^build/ | wc -l)" -ne 0 ]; then
echo "Files not removed by make distclean:"
git ls-files -o|grep -v ^build/
fi
osx:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
name: [osx-clang]
include:
- name: osx-clang
os: macos-latest
compiler: clang
steps:
- name: Install packages
run: |
echo "bison, flex, ncurses, texinfo, and unzip are in the base OS."
echo "berkeley-db, perl, python, curl, and jq are installed in the"
echo "base image already."
brew install autoconf automake libtool cpanm
sudo cpanm install JSON
- name: Clone repository
uses: actions/checkout@v1
- name: Build
env:
CC: ${{ matrix.compiler }}
MAKEVARS: ${{ matrix.makevars }}
CONFIGURE_OPTS: ${{ matrix.configureopts }}
run: |
/bin/sh ./autogen.sh
mkdir build
cd build
../configure --srcdir=`dirname "$PWD"` --disable-afs-support --enable-maintainer-mode --enable-developer $CONFIGURE_OPTS --prefix=$HOME/inst CFLAGS="-Wno-error=shadow -Wno-error=bad-function-cast -Wno-error=unused-function -Wno-error=unused-result -Wno-error=deprecated-declarations"
ulimit -c unlimited
make -j4
make check
make install
- name: Test logs
if: ${{ failure() }}
run: |
find build -name \*.trs|xargs grep -lw FAIL|sed -e 's/trs$/log/'|xargs cat
- name: distclean
run: |
cd build
make distclean
if [ "$(git ls-files -o|grep -v ^build/ | wc -l)" -ne 0 ]; then
echo "Files not removed by make distclean:"
git ls-files -o|grep -v ^build/
fi
windows:
runs-on: windows-latest
env:
APPVER: '10.0'
CODESIGN_PKT: 0000000000000000
INSTALL_DIR: C:\heimdal
WINSDKVER: '10.0.22000.0'
WIXDIR: 'c:\Program Files (x86)\Windows Installer XML v3.5'
steps:
- name: Clone repository
uses: actions/checkout@v1
- name: Find MSVC and run vcvarsall.bat
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64
- name: Build
shell: cmd
run: |
set PATH=%PATH%;C:\msys64\usr\bin;C:\Program Files (x86)\HTML Help Workshop;C:\program files (x86)\windows installer xml v3.5\bin;C:\cygwin\bin
set CODESIGN_PKT=0000000000000000
set dbg__type=Debug
mkdir %INSTALL_DIR%
pacman --noconfirm -S zstd
pacman --noconfirm -S autoconf
pacman --noconfirm -S automake
pacman --noconfirm -S flex
pacman --noconfirm -S bison
pacman --noconfirm -S perl
pacman --noconfirm -S perl-JSON
set PATH=%PATH%;%wix%bin
title Heimdal Build %CPU% %dbg__type%
set "PATH=%PATH%;C:\Perl64\bin;C:\tools\cygwin\bin;C:\Program Files (x86)\HTML Help Workshop"
set "PATH=%PATH%;C:/msys64/usr/bin"
set "PATH=%PATH%;C:\program files (x86)\windows installer xml v3.5\bin;C:\cygwin\bin"
set "PATH=%PATH%;C:\Python310-x64"
echo PATH=%PATH%
nmake /f NTMakefile APPVEYOR=1 MAKEINFO=makeinfo NO_INSTALLERS=1
nmake /f NTMakefile APPVEYOR=1 MAKEINFO=makeinfo NO_INSTALLERS=1 test

View File

@@ -1,4 +1,4 @@
name: Build
name: Linux Build
on:
push:
@@ -16,7 +16,6 @@ on:
- '**.py'
- '**.asn1'
- '**.opt'
- '**/NTMakefile'
- '**/COPYING'
- '**/INSTALL'
- '**/README*'
@@ -39,7 +38,6 @@ on:
- '**.py'
- '**.asn1'
- '**.opt'
- '**/NTMakefile'
- '**/COPYING'
- '**/INSTALL'
- '**/README*'
@@ -48,7 +46,6 @@ on:
- '!.travis.yml'
jobs:
unix:
runs-on: ${{ matrix.os }}
strategy:
@@ -107,89 +104,3 @@ jobs:
echo "Files not removed by make distclean:"
git ls-files -o|grep -v ^build/
fi
osx:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
name: [osx-clang]
include:
- name: osx-clang
os: macos-latest
compiler: clang
steps:
- name: Install packages
run: |
echo "bison, flex, ncurses, texinfo, and unzip are in the base OS."
echo "berkeley-db, perl, python, curl, and jq are installed in the"
echo "base image already."
brew install autoconf automake libtool cpanm
sudo cpanm install JSON
- name: Clone repository
uses: actions/checkout@v1
- name: Build
env:
CC: ${{ matrix.compiler }}
MAKEVARS: ${{ matrix.makevars }}
CONFIGURE_OPTS: ${{ matrix.configureopts }}
run: |
/bin/sh ./autogen.sh
mkdir build
cd build
../configure --srcdir=`dirname "$PWD"` --disable-afs-support --enable-maintainer-mode --enable-developer $CONFIGURE_OPTS --prefix=$HOME/inst CFLAGS="-Wno-error=shadow -Wno-error=bad-function-cast -Wno-error=unused-function -Wno-error=unused-result -Wno-error=deprecated-declarations"
ulimit -c unlimited
make -j4
make check
make install
- name: Test logs
if: ${{ failure() }}
run: |
find build -name \*.trs|xargs grep -lw FAIL|sed -e 's/trs$/log/'|xargs cat
- name: distclean
run: |
cd build
make distclean
if [ "$(git ls-files -o|grep -v ^build/ | wc -l)" -ne 0 ]; then
echo "Files not removed by make distclean:"
git ls-files -o|grep -v ^build/
fi
windows:
runs-on: windows-latest
env:
APPVER: '10.0'
CODESIGN_PKT: 0000000000000000
INSTALL_DIR: C:\heimdal
WINSDKVER: '10.0.22000.0'
WIXDIR: 'c:\Program Files (x86)\Windows Installer XML v3.5'
steps:
- name: Clone repository
uses: actions/checkout@v1
- name: Find MSVC and run vcvarsall.bat
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64
- name: Build
shell: cmd
run: |
set PATH=%PATH%;C:\msys64\usr\bin;C:\Program Files (x86)\HTML Help Workshop;C:\program files (x86)\windows installer xml v3.5\bin;C:\cygwin\bin
set CODESIGN_PKT=0000000000000000
set dbg__type=Debug
mkdir %INSTALL_DIR%
pacman --noconfirm -S zstd
pacman --noconfirm -S autoconf
pacman --noconfirm -S automake
pacman --noconfirm -S flex
pacman --noconfirm -S bison
pacman --noconfirm -S perl
pacman --noconfirm -S perl-JSON
set PATH=%PATH%;%wix%bin
title Heimdal Build %CPU% %dbg__type%
set "PATH=%PATH%;C:\Perl64\bin;C:\tools\cygwin\bin;C:\Program Files (x86)\HTML Help Workshop"
set "PATH=%PATH%;C:/msys64/usr/bin"
set "PATH=%PATH%;C:\program files (x86)\windows installer xml v3.5\bin;C:\cygwin\bin"
set "PATH=%PATH%;C:\Python310-x64"
echo PATH=%PATH%
nmake /f NTMakefile APPVEYOR=1 MAKEINFO=makeinfo NO_INSTALLERS=1
nmake /f NTMakefile APPVEYOR=1 MAKEINFO=makeinfo NO_INSTALLERS=1 test

View File

@@ -1,4 +1,4 @@
name: Build
name: OS X Build
on:
push:
@@ -16,7 +16,6 @@ on:
- '**.py'
- '**.asn1'
- '**.opt'
- '**/NTMakefile'
- '**/COPYING'
- '**/INSTALL'
- '**/README*'
@@ -39,7 +38,6 @@ on:
- '**.py'
- '**.asn1'
- '**.opt'
- '**/NTMakefile'
- '**/COPYING'
- '**/INSTALL'
- '**/README*'
@@ -48,66 +46,6 @@ on:
- '!.travis.yml'
jobs:
unix:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
name: [linux-clang, linux-gcc]
include:
- name: linux-clang
os: ubuntu-18.04
compiler: clang
- name: linux-gcc
os: ubuntu-18.04
compiler: gcc
steps:
- name: Clone repository
uses: actions/checkout@v1
- name: Install packages
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt-get update -qq
sudo apt-get install -y bison comerr-dev flex libcap-ng-dev libdb-dev libedit-dev libjson-perl libldap2-dev libncurses5-dev libperl4-corelibs-perl libsqlite3-dev libkeyutils-dev pkg-config python ss-dev texinfo unzip netbase keyutils ldap-utils gdb apport curl libmicrohttpd-dev jq valgrind
# Temporary workaround for:
# https://github.com/actions/virtual-environments/issues/3185
sudo hostname localhost
- name: Build
env:
CC: ${{ matrix.compiler }}
MAKEVARS: ${{ matrix.makevars }}
CONFIGURE_OPTS: ${{ matrix.configureopts }}
run: |
/bin/sh ./autogen.sh
mkdir build
cd build
../configure --srcdir=`dirname "$PWD"` --enable-maintainer-mode --enable-developer --with-ldap $CONFIGURE_OPTS --prefix=$HOME/inst CFLAGS="-Wno-error=shadow -Wno-error=bad-function-cast -Wno-error=unused-function -Wno-error=unused-result -Wno-error=deprecated-declarations"
ulimit -c unlimited
make -j4
make check
make install
- name: Valgrind output
run: |
find . -name \*.log -print0|xargs -0 grep '^==[1-9]' || true
- name: Core dump stacks
run: |
echo "thread apply all bt" > /tmp/x
find . -name core -print | while read core; do gdb -batch -x x `file "$core"|sed -e "s/^[^']*'//" -e "s/[ '].*$//"` "$core"; done
if [ "$(find . -name core -print | wc -l)" -gt 0 ]; then false; fi
- name: Test logs
if: ${{ failure() }}
run: |
find build -name \*.trs|xargs grep -lw FAIL|sed -e 's/trs$/log/'|xargs cat
- name: distclean
run: |
cd build
make distclean
if [ "$(git ls-files -o|grep -v ^build/ | wc -l)" -ne 0 ]; then
echo "Files not removed by make distclean:"
git ls-files -o|grep -v ^build/
fi
osx:
runs-on: ${{ matrix.os }}
strategy:
@@ -154,42 +92,3 @@ jobs:
echo "Files not removed by make distclean:"
git ls-files -o|grep -v ^build/
fi
windows:
runs-on: windows-latest
env:
APPVER: '10.0'
CODESIGN_PKT: 0000000000000000
INSTALL_DIR: C:\heimdal
WINSDKVER: '10.0.22000.0'
WIXDIR: 'c:\Program Files (x86)\Windows Installer XML v3.5'
steps:
- name: Clone repository
uses: actions/checkout@v1
- name: Find MSVC and run vcvarsall.bat
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64
- name: Build
shell: cmd
run: |
set PATH=%PATH%;C:\msys64\usr\bin;C:\Program Files (x86)\HTML Help Workshop;C:\program files (x86)\windows installer xml v3.5\bin;C:\cygwin\bin
set CODESIGN_PKT=0000000000000000
set dbg__type=Debug
mkdir %INSTALL_DIR%
pacman --noconfirm -S zstd
pacman --noconfirm -S autoconf
pacman --noconfirm -S automake
pacman --noconfirm -S flex
pacman --noconfirm -S bison
pacman --noconfirm -S perl
pacman --noconfirm -S perl-JSON
set PATH=%PATH%;%wix%bin
title Heimdal Build %CPU% %dbg__type%
set "PATH=%PATH%;C:\Perl64\bin;C:\tools\cygwin\bin;C:\Program Files (x86)\HTML Help Workshop"
set "PATH=%PATH%;C:/msys64/usr/bin"
set "PATH=%PATH%;C:\program files (x86)\windows installer xml v3.5\bin;C:\cygwin\bin"
set "PATH=%PATH%;C:\Python310-x64"
echo PATH=%PATH%
nmake /f NTMakefile APPVEYOR=1 MAKEINFO=makeinfo NO_INSTALLERS=1
nmake /f NTMakefile APPVEYOR=1 MAKEINFO=makeinfo NO_INSTALLERS=1 test

View File

@@ -1,4 +1,4 @@
name: Build
name: Windows Build
on:
push:
@@ -9,14 +9,12 @@ on:
- '**.[chly]'
- '**.hin'
- '**.in'
- '**.am'
- '**.m4'
- '**.ac'
- '**.pl'
- '**.py'
- '**.asn1'
- '**.opt'
- '**/NTMakefile'
- '**.w32'
- '**/NTMakefile*'
- '**/COPYING'
- '**/INSTALL'
- '**/README*'
@@ -32,13 +30,11 @@ on:
- '**.[chly]'
- '**.hin'
- '**.in'
- '**.am'
- '**.m4'
- '**.ac'
- '**.pl'
- '**.py'
- '**.asn1'
- '**.opt'
- '**.w32'
- '**/NTMakefile'
- '**/COPYING'
- '**/INSTALL'
@@ -48,113 +44,6 @@ on:
- '!.travis.yml'
jobs:
unix:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
name: [linux-clang, linux-gcc]
include:
- name: linux-clang
os: ubuntu-18.04
compiler: clang
- name: linux-gcc
os: ubuntu-18.04
compiler: gcc
steps:
- name: Clone repository
uses: actions/checkout@v1
- name: Install packages
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt-get update -qq
sudo apt-get install -y bison comerr-dev flex libcap-ng-dev libdb-dev libedit-dev libjson-perl libldap2-dev libncurses5-dev libperl4-corelibs-perl libsqlite3-dev libkeyutils-dev pkg-config python ss-dev texinfo unzip netbase keyutils ldap-utils gdb apport curl libmicrohttpd-dev jq valgrind
# Temporary workaround for:
# https://github.com/actions/virtual-environments/issues/3185
sudo hostname localhost
- name: Build
env:
CC: ${{ matrix.compiler }}
MAKEVARS: ${{ matrix.makevars }}
CONFIGURE_OPTS: ${{ matrix.configureopts }}
run: |
/bin/sh ./autogen.sh
mkdir build
cd build
../configure --srcdir=`dirname "$PWD"` --enable-maintainer-mode --enable-developer --with-ldap $CONFIGURE_OPTS --prefix=$HOME/inst CFLAGS="-Wno-error=shadow -Wno-error=bad-function-cast -Wno-error=unused-function -Wno-error=unused-result -Wno-error=deprecated-declarations"
ulimit -c unlimited
make -j4
make check
make install
- name: Valgrind output
run: |
find . -name \*.log -print0|xargs -0 grep '^==[1-9]' || true
- name: Core dump stacks
run: |
echo "thread apply all bt" > /tmp/x
find . -name core -print | while read core; do gdb -batch -x x `file "$core"|sed -e "s/^[^']*'//" -e "s/[ '].*$//"` "$core"; done
if [ "$(find . -name core -print | wc -l)" -gt 0 ]; then false; fi
- name: Test logs
if: ${{ failure() }}
run: |
find build -name \*.trs|xargs grep -lw FAIL|sed -e 's/trs$/log/'|xargs cat
- name: distclean
run: |
cd build
make distclean
if [ "$(git ls-files -o|grep -v ^build/ | wc -l)" -ne 0 ]; then
echo "Files not removed by make distclean:"
git ls-files -o|grep -v ^build/
fi
osx:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
name: [osx-clang]
include:
- name: osx-clang
os: macos-latest
compiler: clang
steps:
- name: Install packages
run: |
echo "bison, flex, ncurses, texinfo, and unzip are in the base OS."
echo "berkeley-db, perl, python, curl, and jq are installed in the"
echo "base image already."
brew install autoconf automake libtool cpanm
sudo cpanm install JSON
- name: Clone repository
uses: actions/checkout@v1
- name: Build
env:
CC: ${{ matrix.compiler }}
MAKEVARS: ${{ matrix.makevars }}
CONFIGURE_OPTS: ${{ matrix.configureopts }}
run: |
/bin/sh ./autogen.sh
mkdir build
cd build
../configure --srcdir=`dirname "$PWD"` --disable-afs-support --enable-maintainer-mode --enable-developer $CONFIGURE_OPTS --prefix=$HOME/inst CFLAGS="-Wno-error=shadow -Wno-error=bad-function-cast -Wno-error=unused-function -Wno-error=unused-result -Wno-error=deprecated-declarations"
ulimit -c unlimited
make -j4
make check
make install
- name: Test logs
if: ${{ failure() }}
run: |
find build -name \*.trs|xargs grep -lw FAIL|sed -e 's/trs$/log/'|xargs cat
- name: distclean
run: |
cd build
make distclean
if [ "$(git ls-files -o|grep -v ^build/ | wc -l)" -ne 0 ]; then
echo "Files not removed by make distclean:"
git ls-files -o|grep -v ^build/
fi
windows:
runs-on: windows-latest
env:

View File

@@ -1,4 +1,6 @@
[![GitHub Build Workflow](https://github.com/heimdal/heimdal/actions/workflows/build.yml/badge.svg)](https://github.com/heimdal/heimdal/actions?query=workflow%3Abuild)
[![GitHub Build Workflow](https://github.com/heimdal/heimdal/actions/workflows/linux.yml/badge.svg)](https://github.com/heimdal/heimdal/actions?query=workflow%3Alinux)
[![GitHub Build Workflow](https://github.com/heimdal/heimdal/actions/workflows/osx.yml/badge.svg)](https://github.com/heimdal/heimdal/actions?query=workflow%3Aosx)
[![GitHub Build Workflow](https://github.com/heimdal/heimdal/actions/workflows/windows.yml/badge.svg)](https://github.com/heimdal/heimdal/actions?query=workflow%3Awindows)
[![Appveyor-CI build (Windows)](https://ci.appveyor.com/api/projects/status/6j0k0m7kd6jjj4tw/branch/master?svg=true)](https://ci.appveyor.com/project/heimdal/heimdal/branch/master)
[![Coverage Status](https://coveralls.io/repos/github/heimdal/heimdal/badge.svg?branch=master)](https://coveralls.io/github/heimdal/heimdal?branch=master)