8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-22 19:23:02 +01:00

GitHub Actions: add Linux and Windows docker builds.

Linux: include debug info.

Windows: use VS 2019; make it prepared to generate Inno Setup installer kits.
This commit is contained in:
Adriano dos Santos Fernandes 2021-12-07 07:10:40 -03:00
parent d54f5f1ad2
commit 056d071d91

View File

@ -13,34 +13,49 @@ jobs:
fail-fast: false
matrix:
os:
- macOS-latest
- windows-2016
- windows-2019
- windows-2022
- ubuntu-20.04
platform: [x64, x86]
include:
- os: ubuntu-18.04
platform: x64
container: alpine:3.14
exclude:
- os: macOS-latest
platform: x86
- os: ubuntu-20.04
platform: x64
compiler: clang
- os: ubuntu-20.04
platform: x64
container: asfernandes/firebird-builder:x86_64-5
- os: ubuntu-20.04
platform: x86
# This build is failing at actions/upload-artifact when using the "container" way.
#container: asfernandes/firebird-builder:i586-5
docker: "docker"
- os: windows-2022
platform: x64
docker: "docker"
- os: windows-2022
platform: x86
docker: "docker"
- os: windows-2022
platform: x64
- os: windows-2022
platform: x86
- os: macOS-latest
platform: x64
steps:
- uses: actions/checkout@v1
with:
fetch-depth: 10
- name: Prepare (Linux)
if: matrix.os == 'ubuntu-20.04' && !startsWith(matrix.container, 'alpine')
- name: Prepare (Ubuntu)
if: startsWith(matrix.os, 'ubuntu-') && !matrix.container && !matrix.docker
run: |
sudo apt-get install libtool-bin libtomcrypt1 libtomcrypt-dev libtommath1 libtommath-dev libicu-dev zlib1g-dev
- name: Build (Linux)
if: matrix.os == 'ubuntu-20.04' && !startsWith(matrix.container, 'alpine')
- name: Build (Ubuntu)
if: startsWith(matrix.os, 'ubuntu-') && !matrix.container && !matrix.docker
run: |
CC=clang CXX=clang++ ./autogen.sh --enable-binreloc --prefix=/opt/firebird
make -j4
@ -48,12 +63,23 @@ jobs:
tar xzvf gen/Firebird-[0-9]*.tar.gz
(cd Firebird-[0-9]*; sudo ./install.sh -silent)
- name: Build (Linux, Docker)
if: startsWith(matrix.container, 'asfernandes/firebird-builder')
run: /entry.sh
# asfernandes/firebird-builder:i586-5
- name: Build (Linux, Docker)
if: startsWith(matrix.os, 'ubuntu-') && matrix.docker
run: |
cd builds/docker/linux/i586-x86_64
./run-i586.sh
- name: Prepare (Linux, Alpine)
if: matrix.os == 'ubuntu-18.04' && startsWith(matrix.container, 'alpine')
if: startsWith(matrix.container, 'alpine')
run: apk update && apk --no-cache --update add build-base libtool git autoconf automake zlib-dev icu-dev ncurses-dev libedit-dev linux-headers tar
- name: Build (Linux, Alpine)
if: matrix.os == 'ubuntu-18.04' && startsWith(matrix.container, 'alpine')
if: startsWith(matrix.container, 'alpine')
run: |
./autogen.sh --enable-binreloc-threads --with-builtin-tommath --with-builtin-tomcrypt --prefix=/opt/firebird
make -j4
@ -127,7 +153,7 @@ jobs:
for /r %%i in (*.bat) do unix2dos "%%i"
- name: Build (Windows)
if: startsWith(matrix.os, 'windows-')
if: startsWith(matrix.os, 'windows-') && !matrix.docker
shell: cmd
env:
PLATFORM: ${{ matrix.platform }}
@ -143,19 +169,37 @@ jobs:
cd builds\win32
run_all.bat JUSTBUILD
- name: Upload (Linux)
if: matrix.os == 'ubuntu-20.04' && !startsWith(matrix.container, 'alpine')
- name: Build (Windows, Docker)
if: startsWith(matrix.os, 'windows-') && matrix.docker
shell: cmd
env:
PLATFORM: ${{ matrix.platform }}
run: |
mkdir output
cd builds\docker\windows
call build.bat
call run.bat C:\fbscripts\build-%PLATFORM%.bat
- name: Upload (Ubuntu)
if: startsWith(matrix.os, 'ubuntu-') && !matrix.container && !matrix.docker
uses: actions/upload-artifact@main
with:
name: firebird-ubuntu-20.04-clang-${{ matrix.platform }}
path: gen/Firebird-*.tar.gz
- name: Upload (Linux, Docker)
if: startsWith(matrix.container, 'asfernandes/firebird-builder') || (startsWith(matrix.os, 'ubuntu-') && matrix.docker)
uses: actions/upload-artifact@main
with:
name: firebird-linux-${{ matrix.platform }}
path: gen/Firebird-[0-9]*.tar.gz
path: gen/Firebird-*.tar.gz
- name: Upload (Linux, Alpine)
if: matrix.os == 'ubuntu-18.04' && startsWith(matrix.container, 'alpine')
uses: actions/upload-artifact@master
if: startsWith(matrix.container, 'alpine')
uses: actions/upload-artifact@main
with:
name: firebird-linux-alpine
path: gen/Firebird-[0-9]*.tar.gz
name: firebird-alpine-x64
path: gen/Firebird-*.tar.gz
- name: Upload (MacOS)
if: matrix.os == 'macOS-latest'
@ -165,15 +209,22 @@ jobs:
path: gen/artifacts
- name: Upload (Windows x64)
if: startsWith(matrix.os, 'windows-') && matrix.platform == 'x64'
if: startsWith(matrix.os, 'windows-') && !matrix.docker && matrix.platform == 'x64'
uses: actions/upload-artifact@main
with:
name: firebird-windows-x64-vs-${{ env.VS_VERSION }}
name: firebird-windows-vs-${{ env.VS_VERSION }}-x64
path: output_x64
- name: Upload (Windows x86)
if: startsWith(matrix.os, 'windows-') && matrix.platform == 'x86'
if: startsWith(matrix.os, 'windows-') && !matrix.docker && matrix.platform == 'x86'
uses: actions/upload-artifact@main
with:
name: firebird-windows-x86-vs-${{ env.VS_VERSION }}
name: firebird-windows-vs-${{ env.VS_VERSION }}-x86
path: output_win32
- name: Upload (Windows, Docker)
if: startsWith(matrix.os, 'windows-') && matrix.docker
uses: actions/upload-artifact@main
with:
name: firebird-windows-${{ matrix.platform }}
path: output