release-test.yml (4400B)
1 name: Release Tests 2 3 on: 4 push: 5 branches: 6 - master 7 - 'release-*' 8 - 'fix-release*' 9 10 jobs: 11 Linux: 12 runs-on: ubuntu-latest 13 strategy: 14 fail-fast: false 15 matrix: 16 # We can only run extended tests with the default version of g++, because it has to match 17 # the verison of g++-multilib for 32-bit cross-compilation, and alternate versions of 18 # g++-multilib generally aren't available. Clang is more lenient, but we might as well be 19 # consistent. The quick tests should be able to catch issues with older and newer compiler 20 # versions. 21 compiler: [g++, clang] 22 steps: 23 - uses: actions/checkout@v2 24 - name: install dependencies 25 run: | 26 export DEBIAN_FRONTEND=noninteractive 27 sudo apt-get update 28 sudo apt-get install -y build-essential git zlib1g-dev cmake libssl-dev valgrind gcc-multilib g++-multilib ${{ matrix.compiler }} 29 - name: super-test 30 run: | 31 ./super-test.sh ${{ matrix.compiler }} 32 MacOS: 33 runs-on: macos-latest 34 strategy: 35 fail-fast: false 36 steps: 37 - uses: actions/checkout@v2 38 - name: install dependencies 39 run: | 40 brew install autoconf automake libtool pkg-config 41 - name: super-test 42 run: | 43 ./super-test.sh 44 MinGW-Wine: 45 runs-on: ubuntu-latest 46 strategy: 47 fail-fast: false 48 steps: 49 - uses: actions/checkout@v2 50 - name: install dependencies 51 run: | 52 export DEBIAN_FRONTEND=noninteractive 53 sudo dpkg --add-architecture i386 54 sudo apt-get update 55 sudo apt-get install -y build-essential git cmake mingw-w64 wine-stable wine64 wine32 wine-binfmt 56 sudo update-binfmts --import wine 57 - name: 64-bit Build and Test 58 run: | 59 ./super-test.sh mingw x86_64-w64-mingw32 60 - name: 32-bit Build and Test 61 run: | 62 ./super-test.sh mingw i686-w64-mingw32 63 cmake-packaging: 64 runs-on: ubuntu-latest 65 strategy: 66 fail-fast: false 67 steps: 68 - uses: actions/checkout@v2 69 - name: install dependencies 70 run: | 71 export DEBIAN_FRONTEND=noninteractive 72 sudo apt-get install -y build-essential git cmake 73 - name: autotools-shared 74 run: | 75 ./super-test.sh cmake-package autotools-shared 76 - name: autotools-static 77 run: | 78 ./super-test.sh cmake-package autotools-static 79 - name: cmake-shared 80 run: | 81 ./super-test.sh cmake-package cmake-shared 82 - name: cmake-static 83 run: | 84 ./super-test.sh cmake-package cmake-static 85 Android: 86 runs-on: ubuntu-latest 87 strategy: 88 fail-fast: false 89 steps: 90 - uses: actions/checkout@v2 91 - name: install dependencies 92 run: | 93 export DEBIAN_FRONTEND=noninteractive 94 sudo apt-get install -y build-essential git 95 - name: fetch Android tools 96 if: steps.cache-android-sdk.outputs.cache-hit != 'true' 97 run: | 98 # The installed Android SDK is broken. 99 unset ANDROID_SDK_ROOT 100 unset ANDROID_HOME 101 102 mkdir android-sdk 103 cd android-sdk 104 curl -o commandlinetools.zip https://dl.google.com/android/repository/commandlinetools-linux-6200805_latest.zip 105 unzip commandlinetools.zip 106 (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 107 - name: 32-bit Build and Test 108 run: | 109 # The installed Android SDK is broken. 110 unset ANDROID_SDK_ROOT 111 unset ANDROID_HOME 112 113 echo | android-sdk/tools/bin/avdmanager create avd -n capnp -k 'system-images;android-25;google_apis;armeabi-v7a' -b google_apis/armeabi-v7a 114 115 # avdmanager seems to set image.sysdir.1 incorrectly in the AVD's config.ini, which 116 # causes the emulator to fail. I don't know why. I don't know how to fix it, other than 117 # to patch the config like so. 118 sed -i -re 's,^image\.sysdir\.1=android-sdk/,image.sysdir.1=,g' $HOME/.android/avd/capnp.avd/config.ini 119 120 ./super-test.sh android $PWD/android-sdk arm-linux-androideabi armv7a-linux-androideabi24