| name: Release Tests |
| |
| on: |
| push: |
| branches: |
| - master |
| - 'release-*' |
| - 'fix-release*' |
| |
| jobs: |
| Linux: |
| runs-on: ubuntu-latest |
| 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-latest |
| strategy: |
| fail-fast: false |
| steps: |
| - uses: actions/checkout@v2 |
| - 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-latest |
| 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-latest |
| 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 |