Skip to content

Commit

Permalink
Add Windows CI for Java interoperability branch
Browse files Browse the repository at this point in the history
  • Loading branch information
nberth committed Aug 19, 2024
1 parent 1b1f004 commit 78fbcf2
Showing 1 changed file with 113 additions and 0 deletions.
113 changes: 113 additions & 0 deletions .github/workflows/windows-java.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
name: Windows MSYS2 with Java interoperability

on:
pull_request:
branches: [ java-interop ]
push:
branches: [ java-interop-ci4windows ]
# manual run in actions tab - for all branches
workflow_dispatch:

jobs:
build:
strategy:
fail-fast: false
matrix:
os:
- windows-latest

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
uses: msys2/setup-msys2@v2
with:
update: true
install: autoconf automake libtool make mingw-w64-x86_64-ncurses mingw-w64-x86_64-libxml2 mingw-w64-x86_64-cjson mingw-w64-x86_64-db mingw-w64-x86_64-gmp libdb-devel mingw-w64-x86_64-gcc flex bison gmp-devel help2man texinfo gettext-devel

- name: Set git user
run: |
git config --global user.name github-actions
git config --global user.email github-actions-bot@users.noreply.github.com
- name: bootstrap
run: |
./autogen.sh
autoconf
autoreconf --install --force
shell: msys2 {0}

- name: Build environment setup
run: |
mkdir _build
echo "JAVA_HOME=$JAVA_HOME"
echo "export PATH=\"$(cygpath -u "$JAVA_HOME")/bin:\$PATH\"" >> ~/.bash_profile
shell: msys2 {0}

- name: configure
run: |
cd _build
echo "$PATH"
java_home="$(cygpath -u "$JAVA_HOME")"
# thanks @revelator & @GitMensch ;-)
# (cf https://github.com/msys2/MINGW-packages/discussions/8056)
lt_cv_deplibs_check_method=pass_all \
../configure --enable-cobc-internal-checks \
--enable-hardening \
--prefix /opt/cobol/gnucobol \
--exec-prefix /opt/cobol/gnucobol \
--with-java \
JAVA_HOME="$java_home" \
JAVA="$java_home/bin/java" \
JAVAC="$java_home/bin/javac"
shell: msys2 {0}

- 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))
shell: msys2 {0}

- name: Java runtime setup
shell: msys2 {0}
run: |
# Be sure to have `jvm.dll` in path for tests with JNI below
jvmdir="$(dirname $(find "$JAVA_HOME" -name jvm.dll))"
echo "$(find "$JAVA_HOME" -name jvm.dll)"
echo "$jvmdir"
echo "export PATH=\"$(cygpath -u "$jvmdir"):\$PATH\"" >> ~/.bash_profile
echo "export TERM=dumb" >> ~/.bash_profile # <- NB: I know it's weird
- name: check
continue-on-error: true
run: |
make -C _build check TESTSUITEFLAGS="--jobs=$(($(nproc)+1))"
shell: msys2 {0}

- name: Upload testsuite.log
uses: actions/upload-artifact@v4
with:
name: testsuite-${{ matrix.os }}.log
path: _build/tests/testsuite.log

- name: install
run: |
make -C _build install
find /opt/cobol > _build/install.log
shell: msys2 {0}

- name: Upload install.log
uses: actions/upload-artifact@v4
with:
name: install-${{ matrix.os }}.log
path: _build/install.log

0 comments on commit 78fbcf2

Please sign in to comment.