* .github/workflows/linux-ci.yml
* disabled global -Wno-error=... C compiler parameters
* set HB_BUILD_TEST="${{matrix.strictness}}" envvar
* .github/workflows/macos-ci.yml
* .github/workflows/vm2-ci.yml
* disabled global -Wno-error=... C compiler parameters
* set HB_BUILD_TEST="${{matrix.strictness}}" envvar
* reenabled hbfimage contrib library
* .github/workflows/windows-ci.yml
* reenabled hbfimage contrib library
181 lines
5.2 KiB
YAML
181 lines
5.2 KiB
YAML
name: windows-ci
|
|
|
|
on:
|
|
- push
|
|
- pull_request
|
|
|
|
jobs:
|
|
windows-ci:
|
|
runs-on: windows-latest
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler:
|
|
- bcc
|
|
- mingw64
|
|
- clang
|
|
cpu:
|
|
- x86
|
|
- x86_64
|
|
exclude:
|
|
- compiler: bcc
|
|
cpu: x86_64
|
|
- compiler: clang
|
|
cpu: x86
|
|
strictness:
|
|
- "normal"
|
|
- "strict"
|
|
|
|
steps:
|
|
|
|
- name: Configure environment
|
|
shell: bash
|
|
run: |
|
|
set -ex
|
|
{
|
|
case ${{matrix.cpu}} in
|
|
(x86) echo MINGWxx="MINGW32"
|
|
echo "msys_cpu=i686" ;;
|
|
(x86_64) echo MINGWxx="MINGW64"
|
|
echo "msys_cpu=${{matrix.cpu}}" ;;
|
|
esac
|
|
case ${{matrix.compiler}} in
|
|
(clang) echo MINGWxx="CLANG64" ;;
|
|
esac
|
|
} >> $GITHUB_ENV
|
|
|
|
- name: Install packages
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: ${{ env.MINGWxx }}
|
|
location: d:/
|
|
update: true
|
|
install: >
|
|
mingw-w64-${{ env.msys_cpu }}-ccache
|
|
mingw-w64-${{ env.msys_cpu }}-gcc
|
|
mingw-w64-${{ env.msys_cpu }}-make
|
|
mingw-w64-${{ env.msys_cpu }}-allegro
|
|
mingw-w64-${{ env.msys_cpu }}-bzip2
|
|
mingw-w64-${{ env.msys_cpu }}-cairo
|
|
mingw-w64-${{ env.msys_cpu }}-curl
|
|
mingw-w64-${{ env.msys_cpu }}-freeimage
|
|
mingw-w64-${{ env.msys_cpu }}-libgd
|
|
mingw-w64-${{ env.msys_cpu }}-ghostscript
|
|
mingw-w64-${{ env.msys_cpu }}-openssl
|
|
mingw-w64-${{ env.msys_cpu }}-qt5-base
|
|
|
|
- name: 'Add packages available on 64-bit hosts only'
|
|
if: matrix.cpu != 'x86'
|
|
shell: msys2 {0}
|
|
run: |
|
|
pacman -S --noconfirm mingw-w64-${{ env.msys_cpu }}-postgresql
|
|
pacman -S --noconfirm mingw-w64-${{ env.msys_cpu }}-libmariadbclient
|
|
pacman -S --noconfirm mingw-w64-${{ env.msys_cpu }}-firebird
|
|
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
with:
|
|
ref: ${{ github.event.client_payload.branch }}
|
|
|
|
- run: pwd
|
|
shell: msys2 {0}
|
|
|
|
- run: ls
|
|
shell: msys2 {0}
|
|
|
|
- name: Prepare ccache using action
|
|
if: matrix.compiler != 'bcc'
|
|
uses: hendrikmuhs/ccache-action@v1.2.10
|
|
with:
|
|
key: windows-${{ matrix.cpu }}-${{ matrix.compiler }}-${{ matrix.strictness }}-ci
|
|
max-size: "32M"
|
|
|
|
- name: Configure build shell
|
|
shell: msys2 {0}
|
|
run: |
|
|
set -ex
|
|
HB_USER_CFLAGS=""
|
|
HB_USER_LDFLAGS=""
|
|
|
|
case ${{matrix.compiler}} in
|
|
(clang)
|
|
pacman -S --noconfirm mingw-w64-${{ env.msys_cpu }}-clang
|
|
PATH="$PATH:/mingw64/bin/"
|
|
tee ./.bashrc <<EOMCLPTH
|
|
export PATH="\$PATH:/mingw64/bin/" # add ccache location
|
|
EOMCLPTH
|
|
;;
|
|
esac
|
|
|
|
case ${{matrix.strictness}} in
|
|
normal) ;;
|
|
strict) case ${{matrix.compiler}} in
|
|
(mingw64) HB_USER_CFLAGS="$HB_USER_CFLAGS -Werror" ;;
|
|
(bcc) HB_USER_CFLAGS="$HB_USER_CFLAGS -w!" ;;
|
|
(*) HB_USER_CFLAGS="$HB_USER_CFLAGS -Werror" ;;
|
|
esac ;;
|
|
esac
|
|
tee -a ./.bashrc <<EOENV
|
|
|
|
export HB_BUILD_TEST="${{matrix.strictness}}"
|
|
export HB_BUILD_VERBOSE="yes"
|
|
export HBMK_WITH_SQLITE3="local"
|
|
export HB_USER_CFLAGS="$HB_USER_CFLAGS"
|
|
export HB_USER_LDFLAGS="$HB_USER_LDFLAGS"
|
|
export HB_CCACHE=$(which ccache.exe)
|
|
export mingwxx="$(echo "$MINGWxx" | tr A-Z a-z)"
|
|
EOENV
|
|
|
|
case ${{matrix.compiler}} in
|
|
bcc)
|
|
curl -LO "http://altd.embarcadero.com/download/bcppbuilder/freecommandLinetools.exe"
|
|
./freecommandLinetools.exe -s -verbose
|
|
find /c/Borland -type d || exit 1
|
|
tee -a ./.bashrc <<EOMSYSENV
|
|
export PATH="/c/Borland/BCC55/Bin:\$PATH"
|
|
export HB_WITH_CURL="/d/msys64/$mingwxx/include"
|
|
export HB_CCACHE=""
|
|
EOMSYSENV
|
|
;;
|
|
*)
|
|
tee -a ./.bashrc <<'EOCCACHE'
|
|
# Reconfigure ccache in msys2
|
|
ccache --set-config="cache_dir=$(pwd)/.ccache"
|
|
ccache --set-config=max_size=32M
|
|
ccache --set-config=compression=true
|
|
ccache -p
|
|
EOCCACHE
|
|
;;
|
|
esac
|
|
|
|
|
|
- name: Build Harbour
|
|
shell: msys2 {0}
|
|
run: |
|
|
echo ::group::Build Harbour
|
|
set -ex
|
|
source ./.bashrc
|
|
mingw32-make.exe -j2 \
|
|
HB_CPU=${{matrix.cpu}} \
|
|
HB_BUILD_CONTRIBS=no \
|
|
HB_COMPILER=${{matrix.compiler}}
|
|
|
|
- name: Build contribs
|
|
shell: msys2 {0}
|
|
run: |
|
|
echo ::group::Build contribs
|
|
set -ex
|
|
source ./.bashrc
|
|
mingw32-make.exe -j2 \
|
|
-C contrib \
|
|
HB_CPU=${{matrix.cpu}} \
|
|
HB_COMPILER=${{matrix.compiler}}
|
|
|
|
- name: Run tests
|
|
shell: msys2 {0}
|
|
run: |
|
|
echo ::group::Run tests
|
|
set -ex
|
|
bin/win/${{matrix.compiler}}/hbtest.exe
|