mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-22 18:43:02 +01:00
Setup GitHub Actions for Linux and Windows.
This commit is contained in:
parent
0ca45880d3
commit
6c1744a55c
151
.github/workflows/main.yml
vendored
Normal file
151
.github/workflows/main.yml
vendored
Normal file
@ -0,0 +1,151 @@
|
||||
name: CI
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# Build is segfaulting in Ubuntu.
|
||||
#os: [macOS-latest, windows-2016, ubuntu-16.04]
|
||||
os: [windows-2016]
|
||||
platform: [x64, x86]
|
||||
#exclude:
|
||||
# - os: macOS-latest
|
||||
# platform: x86
|
||||
# - os: ubuntu-16.04
|
||||
# platform: x86
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
fetch-depth: 10
|
||||
|
||||
- name: Prepare (Linux)
|
||||
if: matrix.os == 'ubuntu-16.04'
|
||||
run: |
|
||||
sudo apt-get install libtool-bin libtommath0 libtommath-dev libicu-dev zlib1g-dev
|
||||
|
||||
- name: Build (Linux)
|
||||
if: matrix.os == 'ubuntu-16.04'
|
||||
run: |
|
||||
CC=clang CXX=clang++ ./autogen.sh --enable-binreloc --with-builtin-tomcrypt --prefix=/opt/firebird
|
||||
make
|
||||
make dist
|
||||
tar xzvf gen/Firebird-[0-9]*.tar.gz
|
||||
(cd Firebird-[0-9]*; sudo ./install.sh -silent)
|
||||
|
||||
- name: Prepare (MacOS)
|
||||
if: matrix.os == 'macOS-latest'
|
||||
run: |
|
||||
brew install automake libtool
|
||||
export LIBTOOLIZE=glibtoolize
|
||||
export LIBTOOL=glibtool
|
||||
|
||||
mkdir extern/icu-macos
|
||||
pushd extern/icu-macos
|
||||
wget https://github.com/unicode-org/icu/releases/download/release-59-2/icu4c-59_2-src.tgz
|
||||
wget https://github.com/unicode-org/icu/commit/24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
|
||||
tar xzvf icu4c-59_2-src.tgz
|
||||
ICU_INSTALL_PATH=`pwd`/install
|
||||
cd icu/source
|
||||
patch -p3 < ../../24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
|
||||
./runConfigureICU MacOSX --prefix=$ICU_INSTALL_PATH
|
||||
make -j4
|
||||
make install
|
||||
install_name_tool -id @rpath/lib/libicuuc.dylib $ICU_INSTALL_PATH/lib/libicuuc.dylib
|
||||
install_name_tool -id @rpath/lib/libicui18n.dylib $ICU_INSTALL_PATH/lib/libicui18n.dylib
|
||||
install_name_tool -id @rpath/lib/libicudata.dylib $ICU_INSTALL_PATH/lib/libicudata.dylib
|
||||
install_name_tool -change libicudata.59.dylib @loader_path/libicudata.59.dylib $ICU_INSTALL_PATH/lib/libicuuc.59.dylib
|
||||
install_name_tool -change libicudata.59.dylib @loader_path/libicudata.59.dylib $ICU_INSTALL_PATH/lib/libicui18n.59.dylib
|
||||
install_name_tool -change libicuuc.59.dylib @loader_path/libicuuc.59.dylib $ICU_INSTALL_PATH/lib/libicui18n.59.dylib
|
||||
popd
|
||||
mkdir -p gen/Release/firebird/lib
|
||||
mkdir -p gen/Debug/firebird/lib
|
||||
cp $ICU_INSTALL_PATH/lib/*.dylib gen/Release/firebird/lib/
|
||||
cp $ICU_INSTALL_PATH/lib/*.dylib gen/Debug/firebird/lib/
|
||||
|
||||
- name: Build (MacOS)
|
||||
if: matrix.os == 'macOS-latest'
|
||||
run: |
|
||||
export LIBTOOLIZE=glibtoolize
|
||||
export LIBTOOL=glibtool
|
||||
|
||||
ICU_INSTALL_PATH=`pwd`/extern/icu-macos/install
|
||||
|
||||
export C_INCLUDE_PATH="$ICU_INSTALL_PATH/include:$C_INCLUDE_PATH"
|
||||
export CPLUS_INCLUDE_PATH="$ICU_INSTALL_PATH/include:$CPLUS_INCLUDE_PATH"
|
||||
|
||||
LIBRARY_PATH="$ICU_INSTALL_PATH/lib:$LIBRARY_PATH" ./autogen.sh --with-builtin-tommath
|
||||
make -j4
|
||||
|
||||
(cd gen; make -B -f make.platform.postfix ICU_LOC="$ICU_INSTALL_PATH/lib/")
|
||||
(cd gen; make -B -f Makefile.install)
|
||||
|
||||
# Rename directory to make sure the build is relocatable.
|
||||
mv gen gen2
|
||||
sudo installer -pkg gen2/Release/*.pkg -verbose -target /
|
||||
|
||||
export FIREBIRD_LOCK=`pwd`/temp
|
||||
echo "create database 't.fdb'; select '1' from rdb\$database; select _win1252 '2' from rdb\$database; select _utf8 '3' collate unicode from rdb\$database;" | /Library/Frameworks/Firebird.framework/Resources/bin/isql
|
||||
|
||||
echo "create database 'localhost:/tmp/t.fdb' user sysdba password 'masterkey'; select '11' from rdb\$database; select _win1252 '22' from rdb\$database; select _utf8 '33' collate unicode from rdb\$database;" | /Library/Frameworks/Firebird.framework/Resources/bin/isql
|
||||
|
||||
mv gen2 gen
|
||||
mkdir gen/artifacts
|
||||
mv gen/Release/*.pkg gen/artifacts
|
||||
|
||||
- name: Prepare (Windows)
|
||||
if: matrix.os == 'windows-2016'
|
||||
shell: cmd
|
||||
run: |
|
||||
for /r %%i in (*.bat) do unix2dos "%%i"
|
||||
|
||||
- name: Build (Windows)
|
||||
if: matrix.os == 'windows-2016'
|
||||
shell: cmd
|
||||
env:
|
||||
PLATFORM: ${{ matrix.platform }}
|
||||
run: |
|
||||
set
|
||||
if "%PLATFORM%" == "x64" set FB_VS_ARCH=amd64
|
||||
if "%PLATFORM%" == "x64" set FB_PROCESSOR_ARCHITECTURE=AMD64
|
||||
if "%PLATFORM%" == "x64" set FB_OUTPUT_SUFFIX=x64
|
||||
if "%PLATFORM%" == "x86" set FB_VS_ARCH=x86
|
||||
if "%PLATFORM%" == "x86" set FB_PROCESSOR_ARCHITECTURE=x86
|
||||
if "%PLATFORM%" == "x86" set FB_OUTPUT_SUFFIX=win32
|
||||
set
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=%FB_VS_ARCH%
|
||||
cd builds\win32
|
||||
run_all.bat JUSTBUILD
|
||||
|
||||
- name: Upload (Linux)
|
||||
if: matrix.os == 'ubuntu-16.04'
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: firebird-linux
|
||||
path: gen/Firebird-[0-9]*.tar.gz
|
||||
|
||||
- name: Upload (MacOS)
|
||||
if: matrix.os == 'macOS-latest'
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: firebird-macos
|
||||
path: gen/artifacts
|
||||
|
||||
- name: Upload (Windows x64)
|
||||
if: matrix.os == 'windows-2016' && matrix.platform == 'x64'
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: firebird-windows-x64
|
||||
path: output_x64
|
||||
|
||||
- name: Upload (Windows x86)
|
||||
if: matrix.os == 'windows-2016' && matrix.platform == 'x86'
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: firebird-windows-x86
|
||||
path: output_win32
|
Loading…
Reference in New Issue
Block a user