Skip to content

Commit

Permalink
2023-11-09 15:07 UTC+0100 Phil Krylov (phil a t krylov.eu) (#336)
Browse files Browse the repository at this point in the history
* .github/workflows/linux-ci.yml
  * .github/workflows/macos-ci.yml
  * .github/workflows/windows-ci.yml
    + Added GitHub Actions CI workflows.
  • Loading branch information
tuffnatty authored Nov 9, 2023
1 parent a57a6c8 commit deda6c7
Show file tree
Hide file tree
Showing 4 changed files with 264 additions and 0 deletions.
85 changes: 85 additions & 0 deletions .github/workflows/linux-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: linux-ci

on:
- push
- pull_request

jobs:
build-ubuntu:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
os:
- ubuntu
compiler:
- clang
- gcc
strictness:
- "normal"
- "strict"

steps:
- name: Configure environment
run: |
{
HB_USER_CFLAGS=""
HB_USER_LDFLAGS=""
case ${{matrix.strictness}} in
normal) ;;
strict) HB_USER_CFLAGS="$HB_USER_CFLAGS -Werror" ;;
esac
echo HB_BUILD_VERBOSE="yes"
echo HB_USER_CFLAGS="$HB_USER_CFLAGS"
echo HB_USER_LDFLAGS="$HB_USER_LDFLAGS"
} >> $GITHUB_ENV
tee -a $GITHUB_PATH <<EOPATH
/usr/lib/ccache
/usr/local/opt/ccache/libexec
EOPATH
- name: Install packages
run: |
sudo apt-get install -qq \
libncurses-dev \
libslang2-dev \
libx11-dev \
libgpm-dev \
liballegro4.2-dev \
libcairo2-dev \
libcups2-dev \
libcurl4-openssl-dev \
firebird-dev \
libfreeimage-dev \
libgd-dev \
libgs-dev \
libmagic-dev \
libmysqlclient-dev \
unixodbc-dev \
libpq-dev \
qtbase5-dev
- name: Checkout code
uses: actions/checkout@v3
with:
ref: ${{ github.event.client_payload.branch }}

- run: pwd
- run: ls

- name: Prepare ccache using action
uses: hendrikmuhs/ccache-action@v1.2.10
with:
key: ${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.strictness }}-ci
max-size: "32M"

- name: Compile Harbour
run: |
make \
HB_COMPILER=${{matrix.compiler}} \
-j$(nproc)
- name: Run tests
run: |
bin/linux/${{matrix.compiler}}/hbtest
76 changes: 76 additions & 0 deletions .github/workflows/macos-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: macos-ci

on:
- push
- pull_request

jobs:
build-macos:
runs-on: macos-latest

strategy:
fail-fast: false
matrix:
os:
- macos
compiler:
- clang
- gcc
strictness:
- "normal"
- "strict"

steps:
- name: Configure environment
run: |
{
HB_USER_CFLAGS="-arch arm64 -arch x86_64"
HB_USER_LDFLAGS="-arch arm64 -arch x86_64"
case ${{matrix.strictness}} in
normal) ;;
strict) HB_USER_CFLAGS="$HB_USER_CFLAGS -Werror" ;;
esac
echo HB_BUILD_VERBOSE="yes"
echo HB_USER_CFLAGS="$HB_USER_CFLAGS"
echo HB_USER_LDFLAGS="$HB_USER_LDFLAGS"
echo HB_BUILD_CONTRIBS="no hbfimage" # incompatible with freeimage 3.18+
} >> $GITHUB_ENV
tee -a $GITHUB_PATH <<EOPATH
/usr/lib/ccache
/usr/local/opt/ccache/libexec
EOPATH
- name: Install packages
run: |
brew install \
slang \
cairo \
freeimage \
libgd \
mysql \
postgresql \
qt5
- name: Checkout code
uses: actions/checkout@v3
with:
ref: ${{ github.event.client_payload.branch }}

- run: pwd
- run: ls

- name: Prepare ccache using action
uses: hendrikmuhs/ccache-action@v1.2.10
with:
key: ${{ matrix.os }}-${{ matrix.cpu }}-${{ matrix.compiler }}-${{ matrix.strictness }}-ci
max-size: "32M"

- name: Compile Harbour
run: |
make \
HB_COMPILER=${{matrix.compiler}} \
-j$(nproc)
- name: Run tests
run: |
bin/darwin/${{matrix.compiler}}/hbtest
97 changes: 97 additions & 0 deletions .github/workflows/windows-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: windows-ci

on:
- push
- pull_request

jobs:
build-windows:
runs-on: windows-latest

strategy:
fail-fast: false
matrix:
os:
- windows
compiler:
- mingw64
cpu:
- x86
- x86_64
strictness:
- "normal"
- "strict"

steps:
- name: Configure environment
shell: bash
run: |
{
HB_USER_CFLAGS=""
HB_USER_LDFLAGS=""
case ${{matrix.strictness}} in
normal) ;;
strict) HB_USER_CFLAGS="$HB_USER_CFLAGS -Werror" ;;
esac
echo HB_BUILD_VERBOSE="yes"
echo HB_USER_CFLAGS="$HB_USER_CFLAGS"
echo HB_USER_LDFLAGS="$HB_USER_LDFLAGS"
case ${{matrix.cpu}} in
(x86) echo MINGWxx="MINGW32"
echo "msys_cpu=i686" ;;
(x86_64) echo MINGWxx="MINGW64"
echo "msys_cpu=${{matrix.cpu}}" ;;
esac
} >> $GITHUB_ENV
tee -a $GITHUB_PATH <<EOPATH
/mingw64/lib/ccache/bin
EOPATH
- name: Install packages
uses: msys2/setup-msys2@v2
with:
msystem: ${{ env.MINGWxx }}
location: d:/
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 }}-firebird2-git
mingw-w64-${{ env.msys_cpu }}-freeimage
mingw-w64-${{ env.msys_cpu }}-libgd
mingw-w64-${{ env.msys_cpu }}-ghostscript
mingw-w64-${{ env.msys_cpu }}-libmariadbclient
mingw-w64-${{ env.msys_cpu }}-openssl
mingw-w64-${{ env.msys_cpu }}-postgresql
mingw-w64-${{ env.msys_cpu }}-qt5-base
- name: Checkout code
uses: actions/checkout@v3
with:
ref: ${{ github.event.client_payload.branch }}

- run: pwd
- run: ls

- name: Prepare ccache using action
uses: hendrikmuhs/ccache-action@v1.2.10
with:
key: ${{ matrix.os }}-${{ matrix.cpu }}-${{ matrix.compiler }}-${{ matrix.strictness }}-ci
max-size: "32M"

- name: Compile Harbour
shell: msys2 {0}
run: |
mingw32-make.exe \
HB_COMPILER=${{matrix.compiler}} \
HB_CPU=${{matrix.cpu}} \
-j2
- name: Run tests
shell: msys2 {0}
run: |
bin/win/${{matrix.compiler}}/hbtest.exe
6 changes: 6 additions & 0 deletions ChangeLog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
Entries may not always be in chronological/commit order.
See license at the end of file. */

2023-11-09 15:07 UTC+0100 Phil Krylov (phil a t krylov.eu)
* .github/workflows/linux-ci.yml
* .github/workflows/macos-ci.yml
* .github/workflows/windows-ci.yml
+ Added GitHub Actions CI workflows.

2023-10-29 14:27 UTC+0100 Enrico Maria Giordano (e.m.giordano@emagsoftware.it)
* contrib/hbssl/hbssl.hbp
! added support for Openssl 3
Expand Down

0 comments on commit deda6c7

Please sign in to comment.