You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
capnproto/.github/workflows/release-test.yml

131 lines
5.0 KiB
YAML

name: Release Tests
on:
push:
branches:
- master
- 'release-*'
- 'fix-release*'
jobs:
Linux:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
# We can only run extended tests with the default version of g++, because it has to match
# the version of g++-multilib for 32-bit cross-compilation, and alternate versions of
# g++-multilib generally aren't available. Clang is more lenient, but we might as well be
# consistent. The quick tests should be able to catch issues with older and newer compiler
# versions.
compiler: [g++, clang]
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
sudo apt-get install -y build-essential git zlib1g-dev cmake libssl-dev valgrind gcc-multilib g++-multilib ${{ matrix.compiler }}
- name: super-test
run: |
./super-test.sh ${{ matrix.compiler }}
MacOS:
runs-on: macos-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: |
brew install autoconf automake libtool pkg-config
- name: super-test
run: |
./super-test.sh
MinGW-Wine:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v2
# See: https://github.com/actions/virtual-environments/issues/4589#issuecomment-1100899313
# GitHub's Ubuntu image installs all kinds of stuff from non-Ubuntu repositories which cause
# conflicts with Ubuntu packages ultimately preventing installation of wine32. Let's try to
# fix that...
- name: remove unwanted packages and repositories
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update -qq
sudo apt-get install -yqq --allow-downgrades libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
sudo apt-get purge -yqq libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4
- name: install dependencies
run: |
export DEBIAN_FRONTEND=noninteractive
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y build-essential git cmake mingw-w64 wine-stable wine64 wine32 wine-binfmt
sudo update-binfmts --import wine
- name: 64-bit Build and Test
run: |
./super-test.sh mingw x86_64-w64-mingw32
- name: 32-bit Build and Test
run: |
./super-test.sh mingw i686-w64-mingw32
cmake-packaging:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get install -y build-essential git cmake
- name: autotools-shared
run: |
./super-test.sh cmake-package autotools-shared
- name: autotools-static
run: |
./super-test.sh cmake-package autotools-static
- name: cmake-shared
run: |
./super-test.sh cmake-package cmake-shared
- name: cmake-static
run: |
./super-test.sh cmake-package cmake-static
Android:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v2
- name: install dependencies
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get install -y build-essential git
- name: fetch Android tools
if: steps.cache-android-sdk.outputs.cache-hit != 'true'
run: |
# The installed Android SDK is broken.
unset ANDROID_SDK_ROOT
unset ANDROID_HOME
mkdir android-sdk
cd android-sdk
curl -o commandlinetools.zip https://dl.google.com/android/repository/commandlinetools-linux-6200805_latest.zip
unzip commandlinetools.zip
(yes || true) | tools/bin/sdkmanager --sdk_root=$PWD platform-tools 'platforms;android-25' 'system-images;android-25;google_apis;armeabi-v7a' emulator 'build-tools;25.0.2' ndk-bundle
- name: 32-bit Build and Test
run: |
# The installed Android SDK is broken.
unset ANDROID_SDK_ROOT
unset ANDROID_HOME
echo | android-sdk/tools/bin/avdmanager create avd -n capnp -k 'system-images;android-25;google_apis;armeabi-v7a' -b google_apis/armeabi-v7a
# avdmanager seems to set image.sysdir.1 incorrectly in the AVD's config.ini, which
# causes the emulator to fail. I don't know why. I don't know how to fix it, other than
# to patch the config like so.
sed -i -re 's,^image\.sysdir\.1=android-sdk/,image.sysdir.1=,g' $HOME/.android/avd/capnp.avd/config.ini
./super-test.sh android $PWD/android-sdk arm-linux-androideabi armv7a-linux-androideabi24