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:
parent
d54f5f1ad2
commit
056d071d91
99
.github/workflows/main.yml
vendored
99
.github/workflows/main.yml
vendored
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user