CI for forward-porting GC3 patches to GC4 #1167
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
name: MacOS | |
on: | |
pull_request: | |
branches: [ gc4 ] | |
push: | |
# manual run in actions tab - for all branches | |
workflow_dispatch: | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
# - macos-latest-large # macos 14, amd64 | |
- macos-latest # macos 14, arm64 | |
isam: | |
- db | |
- visam | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Configure git | |
run: git config --global core.symlinks false | |
- name: Set git user | |
run: | | |
git config --global user.name github-actions | |
git config --global user.email [email protected] | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install packages | |
run: | | |
brew install pkg-config automake libtool help2man texinfo bison berkeley-db@4 json-c | |
opt="/opt/homebrew/opt" | |
echo "$opt/pkg-config/bin" >> $GITHUB_PATH | |
echo "$opt/bison/bin" >> $GITHUB_PATH | |
echo "LDFLAGS=-L$opt/berkeley-db@4/lib ${LDFLAGS}" >> $GITHUB_ENV | |
echo "CPPFLAGS=-I$opt/berkeley-db@4/include ${CPPFLAGS}" >> $GITHUB_ENV | |
- name: Installing VISAM prerequisite | |
if: ${{ matrix.isam == 'visam' }} | |
run: | | |
wget http://inglenet.ca/Products/GnuCOBOL/visam-2.2.tar.Z | |
tar -xvzf visam-2.2.tar.Z | |
cd visam-2.2 | |
./configure --prefix=/usr/local/visam-2.2 --enable-vbisamdefault | |
chmod u+x build_aux/install-sh | |
make | |
sudo make install | |
echo "CPATH=/usr/local/visam-2.2/include" >> $GITHUB_ENV | |
echo "LIBRARY_PATH=/usr/local/visam-2.2/lib" >> $GITHUB_ENV | |
echo "LD_LIBRARY_PATH=/usr/local/visam-2.2/lib" >> $GITHUB_ENV | |
- name: bootstrap | |
run: | | |
sed -i '' 's/-undefined suppress//g' configure.ac | |
./build_aux/bootstrap install | |
- name: Build environment setup | |
run: | | |
mkdir _build | |
echo "NPROC=`sysctl -n hw.ncpu`" >> $GITHUB_ENV | |
export TERM="vt100" | |
echo "TERM=$TERM" >> $GITHUB_ENV | |
- name: configure | |
run: | | |
cd _build | |
export CPPFLAGS="-DREAD_WRITE_NEEDS_FLUSH $CPPFLAGS" | |
export CFLAGS="-Wno-deprecated-non-prototype -Wno-parentheses-equality $CFLAGS" | |
../configure --with-${{ matrix.isam }} \ | |
--with-indexed=${{ matrix.isam }} \ | |
--enable-cobc-internal-checks \ | |
--enable-hardening \ | |
--prefix /opt/cobol/gnucobol | |
- name: Upload config-${{ matrix.os }}-${{ matrix.isam }}.log | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: config-${{ matrix.os }}-${{ matrix.isam }}.log | |
path: _build/config.log | |
- name: make | |
run: | | |
make -C _build --jobs=$((${NPROC}+1)) | |
# make install must be done before make check, otherwis | |
# execution of generated COBOL files fail for a missing | |
# /usr/local/lib/libcob.dylib | |
- name: make install | |
run: | | |
sudo make -C _build install | |
find /opt/cobol > _build/install.log | |
- name: Upload install-${{ matrix.os }}-${{ matrix.isam }}.log | |
uses: actions/upload-artifact@v4 | |
with: | |
name: install-${{ matrix.os }}-${{ matrix.isam }}.log | |
path: _build/install.log | |
- name: check | |
run: | | |
sed -i '' '/AT_SETUP(\[INDEXED file SUPPRESS WHEN ALL \+ KEYCHECK\])/a\ | |
AT_SKIP_IF(\[true\])' tests/testsuite.src/run_file.at | |
sed -i '' '/AT_SETUP(\[EXTFH: using ISAM callback\])/a\ | |
AT_SKIP_IF(\[true\])' tests/testsuite.src/run_file.at | |
sed -i '' '/AT_SETUP(\[trace feature\])/a\ | |
AT_SKIP_IF(\[true\])' tests/testsuite.src/run_file.at | |
sed -i '' '/AT_SETUP(\[trace feature with subroutine\])/a\ | |
AT_SKIP_IF(\[true\])' tests/testsuite.src/run_file.at | |
sed -i '' '/AT_SETUP(\[trace feature with indexed EXTFH\])/a\ | |
AT_SKIP_IF(\[true\])' tests/testsuite.src/run_file.at | |
make -C _build check \ | |
TESTSUITEFLAGS="--jobs=$((${NPROC}+1))" | |
- name: Upload testsuite-${{ matrix.os }}-${{ matrix.isam }}.log | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: testsuite-${{ matrix.os }}-${{ matrix.isam }}.log | |
path: _build/tests/testsuite.log | |
- name: Cache newcob.val | |
uses: actions/cache@v4 | |
with: | |
path: _build/tests/cobol85/newcob.val | |
key: newcob-val | |
save-always: true | |
enableCrossOsArchive: true | |
- name: NIST85 Test Suite | |
run: | | |
make -C _build/tests/cobol85 EXEC85 test \ | |
--jobs=$((${NPROC}+1)) |