Skip to content

Initial Handling of Non-Void Java Method Calls in GnuCOBOL #114

Initial Handling of Non-Void Java Method Calls in GnuCOBOL

Initial Handling of Non-Void Java Method Calls in GnuCOBOL #114

Workflow file for this run

name: Ubuntu with Java interoperability
on:
pull_request:
branches: [ java-interop ]
push:
# manual run in actions tab - for all branches
workflow_dispatch:
jobs:
build:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-20.04
runs-on: ${{ matrix.os }}
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout code
uses: actions/checkout@v4
- name: Install packages
run: |
sudo apt-get update
sudo apt-get install automake libtool bison flex help2man gettext texlive
- name: Set git user
run: |
git config --global user.name github-actions
git config --global user.email [email protected]
- name: Installing Java prerequisite
run: |
true # nothing to do
- name: bootstrap
run: |
./build_aux/bootstrap
# FIXME: With TERM="dumb" `make check` fails with:
# ...
# 571: ACCEPT OMITTED (SCREEN) FAILED (run_accept.at:307)
# ...
# 693: ON EXCEPTION clause of DISPLAY FAILED (run_misc.at:6335)
# 695: LINE/COLUMN 0 exceptions FAILED (run_misc.at:6414)
# 694: EC-SCREEN-LINE-NUMBER and -STARTING-COLUMN FAILED (run_misc.at:6376)
# ...
# Failure cases read: "Error opening terminal: unknown." on
# stderr, and exit with code 1.
#
# Another alternative is passing `--with-curses=no` to the
# configure script, yet distcheck does call configure too...
#
- name: Build environment setup
run: |
mkdir _build
export TERM="vt100"
echo "TERM=$TERM" >> $GITHUB_ENV
echo "INSTALL_PATH=$(pwd)/_install" >> $GITHUB_ENV
- name: configure
run: |
cd _build
../configure --enable-cobc-internal-checks \
--enable-hardening \
--prefix ${INSTALL_PATH} \
--disable-nls \
--without-indexed \
--without-json \
--without-xml2 \
--without-curses \
--with-java
echo "VERSION=PACKAGE_VERSION" | cpp -P -imacros config.h | tr -d \" >> $GITHUB_ENV
- name: Upload config.log
uses: actions/upload-artifact@v4
if: failure()
with:
name: config-${{ matrix.os }}.log
path: _build/config.log
- name: make
run: |
make -C _build --jobs=$(($(nproc)+1))
- name: distcheck
run: |
make -C _build distcheck \
TESTSUITEFLAGS="--jobs=$(($(nproc)+1))" \
DISTCHECK_CONFIGURE_FLAGS="--disable-nls \
--without-indexed \
--without-json \
--without-xml2 \
--without-curses \
--with-java" || \
make -C _build/gnucobol-$VERSION/_build/sub/tests check \
TESTSUITEFLAGS="--recheck --verbose"
# Note: NIST tests are not performed by this CI workflow: they
# do not involve any Java interoperability feature.
- name: Upload testsuite.log
uses: actions/upload-artifact@v4
if: failure()
with:
# Assume there's only one directory matching `_build/gnucobol-*`:
name: testsuite-${{ matrix.os }}.log
path: _build/gnucobol-${{ env.VERSION }}/_build/sub/tests/testsuite.log