Implement Github-actions tests on macOS.

This commit is contained in:
John Ralls
2020-11-17 16:55:42 -08:00
parent 0b670680d7
commit 4b7bc94e9d
8 changed files with 414 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
For creating the macOS dependency tarball required by the Github CI tests.
Reruirements:
* Administrator privs on your Mac.
* Project admin privs for https://sourceforge.net/projects/gnucash.
* You must be running the same or newer version of macOS as the Github runner.
* Xcode or command-line tools (install the latter with `sudo xcode-select -install`).
To build this tarball you must be running the same or newer macOS version as the Github VM.
Procedure:
* Set up a Gtk-OSX build environment following the [GnuCash Quartz Build instructions](https://wiki.gnucash.org/wiki/MacOS/Quartz).
* Retrieve [jhbuildrc-custom](https://github.com/gnucash/gnucash-on-osx/jhbuildrc-custom) and put it in ~/.config.
* Set `modules = _modules_deps` on the appropriate line of `jhbuildrc-custom`.
* If you are not running the same version of macOS as the Github actions virtual environment change the `setup_SDK()` line at the bottom of `jhbuildrc-custom` to `setup_SDK('10.15')`, substituting the VM's macOS version for '10.15'.
* Create the directory `/Users/runner/` and make yourself the owner:
```
sudo mkdir /Users/runner
sudo chown me /Users/runner
mkdir /Users/runner/gnucash
```
Substituting your own userid for 'me'.
* Run `util/ci/macos-ci-deps/make-macos-deps-tarball.sh gnucash-4.2-mac-dependencies.tar.xz` from the root of the source directory, changing the tarball's name if appropriate.
* Upload the resulting tarball to the Dependencies folder in the Gnucash files section on SourceForge.
* If necessary modify `.github/workflows/mac-tests.yaml to reflect the tarball's URI.

View File

@@ -0,0 +1,28 @@
cmake
ctest
glib-compile-resources
glib-compile-schemas
guild
guile
msgattrib
msgcat
msgcmp
msgcomm
msgconv
msgen
msgexec
msgfilter
msgfmt
msggrep
msginit
msgmerge
msgunfmt
msguniq
ninja
pkg-config
python3
python3-config
python3.8
python3.8-config
swig
xgettext

View File

@@ -0,0 +1,33 @@
aqbanking6
atk-1.0
boost
cairo
dbi
freetype2
fribidi
gdk-pixbuf-2.0
gio-unix-2.0
glib-2.0
gmp.h
gtk-3.0
gtkmacintegration
guile
gwenhywfar5
harfbuzz
libintl.h
libofx
libpng16
libsoup-2.4
libxml2
libxslt
lzma
lzma.h
pango-1.0
pixman-1
pygobject-3.0
python3.8
unicase.h
unicode
uniconv.h
unictype.h
webkitgtk-4.0

View File

@@ -0,0 +1,236 @@
dbd
glib-2.0
guile
libaqbanking.44.dylib
libaqbanking.dylib
libatk-1.0.0.dylib
libatk-1.0.dylib
libboost_chrono.dylib
libboost_date_time.dylib
libboost_filesystem.dylib
libboost_locale.dylib
libboost_program_options.dylib
libboost_regex.dylib
libboost_system.dylib
libboost_thread.dylib
libcairo-gobject.2.dylib
libcairo-gobject.dylib
libcairo-script-interpreter.2.dylib
libcairo-script-interpreter.dylib
libcairo.2.dylib
libcairo.dylib
libchipcard.6.dylib
libchipcard.dylib
libcord.1.dylib
libcord.dylib
libcroco-0.6.3.dylib
libcroco-0.6.dylib
libcrypto.1.1.dylib
libcrypto.dylib
libdbi.1.dylib
libdbi.dylib
libecpg.6.12.dylib
libecpg.6.dylib
libecpg.dylib
libecpg_compat.3.12.dylib
libecpg_compat.3.dylib
libecpg_compat.dylib
libenchant.1.dylib
libenchant.dylib
libepoxy.0.dylib
libepoxy.dylib
libexslt.0.dylib
libexslt.dylib
libffi.7.dylib
libffi.dylib
libfl.2.dylib
libfl.dylib
libfl_pic.2.dylib
libfl_pic.dylib
libfontconfig.1.dylib
libfontconfig.dylib
libfreetype.6.17.2.dylib
libfreetype.6.dylib
libfreetype.dylib
libfribidi.0.dylib
libfribidi.dylib
libgailutil-3.0.dylib
libgailutil-3.dylib
libgc.1.dylib
libgc.dylib
libgcrypt.20.dylib
libgcrypt.dylib
libgdk-3.0.dylib
libgdk-3.dylib
libgdk_pixbuf-2.0.0.dylib
libgdk_pixbuf-2.0.dylib
libgettextlib-0.20.2.dylib
libgettextlib.dylib
libgettextpo.0.dylib
libgettextpo.dylib
libgettextsrc-0.20.2.dylib
libgettextsrc.dylib
libgio-2.0.0.dylib
libgio-2.0.dylib
libgirepository-1.0.1.dylib
libgirepository-1.0.dylib
libglib-2.0.0.dylib
libglib-2.0.dylib
libgmodule-2.0.0.dylib
libgmodule-2.0.dylib
libgmp.10.dylib
libgmp.dylib
libgnutls.30.dylib
libgnutls.dylib
libgnutlsxx.28.dylib
libgnutlsxx.dylib
libgobject-2.0.0.dylib
libgobject-2.0.dylib
libgpg-error.0.dylib
libgpg-error.dylib
libgthread-2.0.0.dylib
libgthread-2.0.dylib
libgtk-3.0.dylib
libgtk-3.dylib
libgtkmacintegration-gtk3.2.dylib
libgtkmacintegration-gtk3.dylib
libguile-2.2.1.dylib
libguile-2.2.dylib
libgwengui-cpp.79.dylib
libgwengui-cpp.dylib
libgwengui-gtk3.79.dylib
libgwengui-gtk3.dylib
libgwenhywfar.79.dylib
libgwenhywfar.dylib
libharfbuzz-gobject.0.dylib
libharfbuzz-gobject.dylib
libharfbuzz-icu.0.dylib
libharfbuzz-icu.dylib
libharfbuzz-subset.0.dylib
libharfbuzz-subset.dylib
libharfbuzz.0.dylib
libharfbuzz.dylib
libhistory.8.0.dylib
libhistory.8.dylib
libhistory.dylib
libhogweed.5.0.dylib
libhogweed.5.dylib
libhogweed.dylib
libicudata.66.1.dylib
libicudata.66.dylib
libicudata.dylib
libicui18n.66.1.dylib
libicui18n.66.dylib
libicui18n.dylib
libicuio.66.1.dylib
libicuio.66.dylib
libicuio.dylib
libicutest.66.1.dylib
libicutest.66.dylib
libicutest.dylib
libicutu.66.1.dylib
libicutu.66.dylib
libicutu.dylib
libicuuc.66.1.dylib
libicuuc.66.dylib
libicuuc.dylib
libintl.8.dylib
libintl.dylib
libjavascriptcoregtk-4.0.18.17.10.dylib
libjavascriptcoregtk-4.0.18.dylib
libjavascriptcoregtk-4.0.dylib
libjpeg.9.dylib
libjpeg.dylib
libltdl.7.dylib
libltdl.dylib
liblzma.5.dylib
liblzma.dylib
libmysqlclient.18.dylib
libmysqlclient.dylib
libnettle.7.0.dylib
libnettle.7.dylib
libnettle.dylib
libofx.7.dylib
libofx.dylib
libosp.5.dylib
libosp.dylib
libpango-1.0.0.dylib
libpango-1.0.dylib
libpangocairo-1.0.0.dylib
libpangocairo-1.0.dylib
libpangoft2-1.0.0.dylib
libpangoft2-1.0.dylib
libpcre.1.dylib
libpcre.dylib
libpcrecpp.0.dylib
libpcrecpp.dylib
libpcreposix.0.dylib
libpcreposix.dylib
libpgtypes.3.12.dylib
libpgtypes.3.dylib
libpgtypes.dylib
libpixman-1.0.40.0.dylib
libpixman-1.0.dylib
libpixman-1.dylib
libpng.dylib
libpng16.16.dylib
libpng16.dylib
libpq.5.12.dylib
libpq.5.dylib
libpq.dylib
libpsl.5.dylib
libpsl.dylib
libpython3.8.dylib
libreadline.8.0.dylib
libreadline.8.dylib
libreadline.dylib
librsvg-2.2.dylib
librsvg-2.dylib
libsoup-2.4.1.dylib
libsoup-2.4.dylib
libsoup-gnome-2.4.1.dylib
libsoup-gnome-2.4.dylib
libsqlite3.0.dylib
libsqlite3.dylib
libssl.1.1.dylib
libssl.dylib
libtasn1.6.dylib
libtasn1.dylib
libtextstyle.0.dylib
libtextstyle.dylib
libtiff.5.dylib
libtiff.dylib
libtiffxx.5.dylib
libtiffxx.dylib
libunistring.2.dylib
libunistring.dylib
libvala-0.36.0.dylib
libvala-0.36.dylib
libwebkit2gtk-4.0.37.49.6.dylib
libwebkit2gtk-4.0.37.dylib
libwebkit2gtk-4.0.dylib
libwebp.7.dylib
libwebp.dylib
libwebpdecoder.3.dylib
libwebpdecoder.dylib
libwebpdemux.2.dylib
libwebpdemux.dylib
libwebpmux.3.dylib
libwebpmux.dylib
libxml2.2.dylib
libxml2.dylib
libxmlsec1-gcrypt.1.dylib
libxmlsec1-gcrypt.dylib
libxmlsec1-gnutls.1.dylib
libxmlsec1-gnutls.dylib
libxmlsec1-openssl.1.dylib
libxmlsec1-openssl.dylib
libxmlsec1.1.dylib
libxmlsec1.dylib
libxslt.1.dylib
libxslt.dylib
libz.1.2.11.dylib
libz.1.dylib
libz.dylib
pkgconfig
python3.8

View File

@@ -0,0 +1,7 @@
cmake
cmake-3.17
gettext
gettext-0.20.2
guile
itstool
swig

View File

@@ -0,0 +1,24 @@
#!/bin/sh
fn=$1
if [[ "x$fn" = "x" ]]; then
fn="macos-dependencies.tar.xz"
fi
DIR=$(pwd)
export PREFIX=/Users/runner/gnucash/inst
jhbuild bootstrap-gtk-osx
jhbuild build
cd /Users/runner/gnucash
mv inst arch
mkdir inst
for i in 'bin' 'include' 'lib' 'share'; do
j="$DIR/util/ci/macos-ci-deps/macos_$i.manifest"
mkdir inst/$i
for k in `cat $j`; do
mv arch/$i/$k inst/$i
done
done
tar -cJf $DIR/$fn inst