Caleb Maclennan | a2d45cd | 2020-09-11 14:14:20 +0300 | [diff] [blame] | 1 | version: 2.1 |
| 2 | |
| 3 | executors: |
| 4 | win32-executor: |
| 5 | docker: |
| 6 | - image: cimg/base:edge-20.04 |
Khaled Hosny | e38b873 | 2021-09-07 14:13:23 +0200 | [diff] [blame] | 7 | win64-executor: |
| 8 | docker: |
| 9 | - image: cimg/base:edge-20.04 |
Caleb Maclennan | 42bcc47 | 2020-09-11 16:40:32 +0300 | [diff] [blame] | 10 | autotools-executor: |
| 11 | docker: |
| 12 | - image: cimg/base:edge-20.04 |
Behdad Esfahbod | 65d4e5b | 2017-11-01 01:15:27 -0600 | [diff] [blame] | 13 | |
ebraminio | b7982c9 | 2017-10-31 12:42:08 -0700 | [diff] [blame] | 14 | jobs: |
| 15 | |
Khaled Hosny | 5f5a8b4 | 2021-07-12 22:24:14 +0200 | [diff] [blame] | 16 | macos-aat-fonts: |
Ebrahim Byagowi | 49434bd | 2019-12-10 16:28:04 +0330 | [diff] [blame] | 17 | macos: |
Khaled Hosny | 5f5a8b4 | 2021-07-12 22:24:14 +0200 | [diff] [blame] | 18 | xcode: "12.5.1" |
Ebrahim Byagowi | 8b6eb6c | 2019-03-08 01:33:41 +0330 | [diff] [blame] | 19 | steps: |
| 20 | - checkout |
Khaled Hosny | bac8a85 | 2020-11-21 16:07:57 +0200 | [diff] [blame] | 21 | - run: HOMEBREW_NO_AUTO_UPDATE=1 brew install pkg-config ragel freetype glib cairo python3 icu4c graphite2 gobject-introspection gtk-doc ninja |
Ebrahim Byagowi | 471ae78 | 2020-07-06 18:29:23 +0430 | [diff] [blame] | 22 | - run: pip3 install meson --upgrade |
Khaled Hosny | c571a96 | 2021-04-25 15:43:30 +0200 | [diff] [blame] | 23 | - run: PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/libffi/lib/pkgconfig" meson build -Dcoretext=enabled -Dgraphite=enabled -Dauto_features=enabled -Dchafa=disabled |
Ebrahim Byagowi | 3a8d137 | 2020-07-06 16:31:32 +0430 | [diff] [blame] | 24 | - run: meson compile -Cbuild |
| 25 | - run: meson test -Cbuild --print-errorlogs |
Khaled Hosny | 5adc134 | 2020-10-23 18:39:34 +0200 | [diff] [blame] | 26 | - store_artifacts: |
| 27 | path: build/meson-logs/ |
Ebrahim Byagowi | 8b6eb6c | 2019-03-08 01:33:41 +0330 | [diff] [blame] | 28 | |
Ebrahim Byagowi | 5193357 | 2020-08-11 23:51:59 +0430 | [diff] [blame] | 29 | # will be dropped with autotools removal |
| 30 | distcheck: |
Caleb Maclennan | 42bcc47 | 2020-09-11 16:40:32 +0300 | [diff] [blame] | 31 | executor: autotools-executor |
Ebrahim Byagowi | 5193357 | 2020-08-11 23:51:59 +0430 | [diff] [blame] | 32 | steps: |
| 33 | - checkout |
Khaled Hosny | 743baf3 | 2021-03-22 15:51:17 +0200 | [diff] [blame] | 34 | - run: sudo apt update && DEBIAN_FRONTEND=noninteractive sudo apt install -y git ninja-build binutils libtool autoconf automake make gcc g++ pkg-config ragel gtk-doc-tools gobject-introspection libfreetype6-dev libglib2.0-dev libgirepository1.0-dev libcairo2-dev libicu-dev libgraphite2-dev python3 python3-pip |
Garret Rieger | f3e0315 | 2021-07-27 14:40:15 -0700 | [diff] [blame] | 35 | - run: pip3 install fonttools meson --upgrade |
Ebrahim Byagowi | 5193357 | 2020-08-11 23:51:59 +0430 | [diff] [blame] | 36 | - run: ./autogen.sh |
Khaled Hosny | f2240d1 | 2021-04-16 02:37:11 +0200 | [diff] [blame] | 37 | - run: make -j2 distcheck |
Ebrahim Byagowi | 5193357 | 2020-08-11 23:51:59 +0430 | [diff] [blame] | 38 | - run: rm harfbuzz-* && make distdir |
Khaled Hosny | f2240d1 | 2021-04-16 02:37:11 +0200 | [diff] [blame] | 39 | - run: cd harfbuzz-* && meson build && ninja -j2 -Cbuild test |
Caleb Maclennan | 65be538 | 2020-09-11 16:46:34 +0300 | [diff] [blame] | 40 | - run: make dist |
| 41 | - persist_to_workspace: |
| 42 | root: . |
| 43 | paths: harfbuzz-*.tar.xz |
| 44 | |
| 45 | publish-dist: |
| 46 | executor: autotools-executor |
| 47 | steps: |
Caleb Maclennan | f4dea33 | 2020-09-11 17:23:00 +0300 | [diff] [blame] | 48 | - checkout |
Caleb Maclennan | 65be538 | 2020-09-11 16:46:34 +0300 | [diff] [blame] | 49 | - attach_workspace: |
| 50 | at: . |
| 51 | - run: | |
Caleb Maclennan | f4dea33 | 2020-09-11 17:23:00 +0300 | [diff] [blame] | 52 | .ci/publish_release_artifact.sh harfbuzz-$CIRCLE_TAG.tar.xz |
Ebrahim Byagowi | 5193357 | 2020-08-11 23:51:59 +0430 | [diff] [blame] | 53 | |
Ebrahim Byagowi | e4f9969 | 2020-07-08 15:10:25 +0430 | [diff] [blame] | 54 | fedora-valgrind: |
Ebrahim Byagowi | e24bea8 | 2018-01-10 23:51:56 +0330 | [diff] [blame] | 55 | docker: |
Khaled Hosny | 517d68b | 2021-05-01 23:50:39 +0200 | [diff] [blame] | 56 | - image: fedora:33 |
Ebrahim Byagowi | e24bea8 | 2018-01-10 23:51:56 +0330 | [diff] [blame] | 57 | steps: |
| 58 | - checkout |
Khaled Hosny | bac8a85 | 2020-11-21 16:07:57 +0200 | [diff] [blame] | 59 | - run: dnf install -y pkg-config ragel valgrind gcc gcc-c++ meson git glib2-devel freetype-devel cairo-devel libicu-devel gobject-introspection-devel graphite2-devel redhat-rpm-config python python-pip || true |
Ebrahim Byagowi | e4f9969 | 2020-07-08 15:10:25 +0430 | [diff] [blame] | 60 | - run: meson build --buildtype=debugoptimized |
| 61 | - run: ninja -Cbuild -j9 |
Ebrahim Byagowi | 3163e9f | 2020-07-12 23:11:45 +0430 | [diff] [blame] | 62 | # TOOD: increase timeouts and remove --no-suite=slow |
Khaled Hosny | 449c429 | 2021-12-12 07:50:06 +0200 | [diff] [blame] | 63 | - run: RUN_VALGRIND=1 meson test -Cbuild --no-suite=slow --wrap='valgrind --leak-check=full --error-exitcode=1' --print-errorlogs --num-processes=$(($(nproc)/2 + 1)) |
Ebrahim Byagowi | e4f9969 | 2020-07-08 15:10:25 +0430 | [diff] [blame] | 64 | |
| 65 | alpine: |
| 66 | docker: |
| 67 | - image: alpine |
| 68 | steps: |
| 69 | - checkout |
Khaled Hosny | bac8a85 | 2020-11-21 16:07:57 +0200 | [diff] [blame] | 70 | - run: apk update && apk add ragel gcc g++ glib-dev freetype-dev cairo-dev git py3-pip ninja |
Khaled Hosny | 69d8f27 | 2021-11-20 17:09:15 +0200 | [diff] [blame] | 71 | - run: pip3 install meson==0.56.0 |
Ebrahim Byagowi | e4f9969 | 2020-07-08 15:10:25 +0430 | [diff] [blame] | 72 | - run: meson build --buildtype=minsize |
| 73 | - run: ninja -Cbuild -j9 |
| 74 | - run: meson test -Cbuild --print-errorlogs |
| 75 | |
| 76 | archlinux: |
| 77 | docker: |
| 78 | - image: archlinux/base |
| 79 | steps: |
| 80 | - checkout |
Khaled Hosny | bac8a85 | 2020-11-21 16:07:57 +0200 | [diff] [blame] | 81 | - run: pacman --noconfirm -Syu freetype2 meson git clang cairo icu gettext gobject-introspection gcc gcc-libs glib2 graphite pkg-config ragel python python-pip base-devel gtk-doc |
Garret Rieger | f3e0315 | 2021-07-27 14:40:15 -0700 | [diff] [blame] | 82 | - run: pip install flake8 fonttools |
Ebrahim Byagowi | e4f9969 | 2020-07-08 15:10:25 +0430 | [diff] [blame] | 83 | - run: flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics |
ebraminio | c0107c1 | 2020-08-10 14:30:34 +0430 | [diff] [blame] | 84 | - run: meson build -Dgraphite=enabled -Dauto_features=enabled -Dexperimental_api=true |
Ebrahim Byagowi | e4f9969 | 2020-07-08 15:10:25 +0430 | [diff] [blame] | 85 | - run: meson compile -Cbuild -j9 |
| 86 | - run: meson test -Cbuild --print-errorlogs |
| 87 | - run: meson dist -Cbuild |
| 88 | - run: clang -c src/harfbuzz.cc -DHB_NO_MT |
| 89 | - run: clang -c src/hb-*.cc -DHB_NO_MT -DHB_TINY -DHB_NO_OT_FONT |
| 90 | |
Khaled Hosny | ed65577 | 2021-11-20 20:51:26 +0200 | [diff] [blame] | 91 | asan-ubsan: |
Ebrahim Byagowi | e4f9969 | 2020-07-08 15:10:25 +0430 | [diff] [blame] | 92 | docker: |
| 93 | - image: ubuntu:20.04 |
| 94 | steps: |
| 95 | - checkout |
Behdad Esfahbod | 9582640 | 2021-03-15 16:47:27 -0600 | [diff] [blame] | 96 | - run: apt update || true |
Khaled Hosny | 69d8f27 | 2021-11-20 17:09:15 +0200 | [diff] [blame] | 97 | - run: DEBIAN_FRONTEND=noninteractive apt install -y python3 python3-pip ninja-build clang lld git binutils pkg-config ragel libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev |
| 98 | - run: pip3 install meson==0.56.0 |
Khaled Hosny | ed65577 | 2021-11-20 20:51:26 +0200 | [diff] [blame] | 99 | - run: CC=clang CXX=clang++ meson build --default-library=static -Db_sanitize=address,undefined --buildtype=debugoptimized --wrap-mode=nodownload -Dexperimental_api=true |
Ebrahim Byagowi | 3163e9f | 2020-07-12 23:11:45 +0430 | [diff] [blame] | 100 | - run: ninja -Cbuild -j8 && meson test -Cbuild --print-errorlogs | asan_symbolize | c++filt |
Khaled Hosny | ed65577 | 2021-11-20 20:51:26 +0200 | [diff] [blame] | 101 | |
| 102 | tsan: |
| 103 | docker: |
| 104 | - image: ubuntu:20.04 |
| 105 | steps: |
| 106 | - checkout |
| 107 | - run: apt update || true |
| 108 | - run: DEBIAN_FRONTEND=noninteractive apt install -y python3 python3-pip ninja-build clang lld git binutils pkg-config ragel libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev |
| 109 | - run: pip3 install meson==0.56.0 |
| 110 | - run: CC=clang CXX=clang++ meson build --default-library=static -Db_sanitize=thread --buildtype=debugoptimized --wrap-mode=nodownload -Dexperimental_api=true |
Ebrahim Byagowi | 3163e9f | 2020-07-12 23:11:45 +0430 | [diff] [blame] | 111 | - run: ninja -Cbuild -j8 && meson test -Cbuild --print-errorlogs | asan_symbolize | c++filt |
Khaled Hosny | ed65577 | 2021-11-20 20:51:26 +0200 | [diff] [blame] | 112 | |
| 113 | msan: |
| 114 | docker: |
| 115 | - image: ubuntu:20.04 |
| 116 | steps: |
| 117 | - checkout |
| 118 | - run: apt update || true |
| 119 | - run: DEBIAN_FRONTEND=noninteractive apt install -y python3 python3-pip ninja-build clang lld git binutils pkg-config ragel libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev |
| 120 | - run: pip3 install meson==0.56.0 |
Ebrahim Byagowi | e4f9969 | 2020-07-08 15:10:25 +0430 | [diff] [blame] | 121 | # msan, needs --force-fallback-for=glib,freetype2 also which doesn't work yet but runs fuzzer cases at least |
Khaled Hosny | ed65577 | 2021-11-20 20:51:26 +0200 | [diff] [blame] | 122 | - run: CC=clang CXX=clang++ meson build --default-library=static -Db_sanitize=memory --buildtype=debugoptimized --wrap-mode=nodownload -Dauto_features=disabled -Dtests=enabled -Dexperimental_api=true |
Ebrahim Byagowi | 3163e9f | 2020-07-12 23:11:45 +0430 | [diff] [blame] | 123 | - run: ninja -Cbuild -j8 && meson test -Cbuild --print-errorlogs | asan_symbolize | c++filt |
Khaled Hosny | ed65577 | 2021-11-20 20:51:26 +0200 | [diff] [blame] | 124 | |
| 125 | clang-cxx2a: |
| 126 | docker: |
| 127 | - image: ubuntu:20.04 |
| 128 | steps: |
| 129 | - checkout |
| 130 | - run: apt update || true |
| 131 | - run: DEBIAN_FRONTEND=noninteractive apt install -y clang lld git binutils |
Behdad Esfahbod | f5356bc | 2021-03-15 16:52:39 -0600 | [diff] [blame] | 132 | - run: clang -c src/harfbuzz.cc src/hb-subset*.cc -DHB_NO_MT -Werror -std=c++2a |
Ebrahim Byagowi | e24bea8 | 2018-01-10 23:51:56 +0330 | [diff] [blame] | 133 | |
Ebrahim Byagowi | bec3db4 | 2020-07-25 13:45:34 +0430 | [diff] [blame] | 134 | crossbuild-win32: |
Caleb Maclennan | a2d45cd | 2020-09-11 14:14:20 +0300 | [diff] [blame] | 135 | executor: win32-executor |
Ebrahim Byagowi | e24bea8 | 2018-01-10 23:51:56 +0330 | [diff] [blame] | 136 | steps: |
| 137 | - checkout |
Khaled Hosny | f73053e | 2021-08-15 18:27:32 +0200 | [diff] [blame] | 138 | - run: sudo apt update && DEBIAN_FRONTEND=noninteractive sudo apt install -y ninja-build gtk-doc-tools python3 python3-pip git g++-mingw-w64-i686 zip |
Xavier Claessens | a082fe4 | 2020-11-06 13:02:21 -0500 | [diff] [blame] | 139 | - run: pip3 install meson==0.56.0 --upgrade |
Ebrahim Byagowi | 6058ede | 2020-06-01 12:58:31 +0430 | [diff] [blame] | 140 | - run: .ci/build-win32.sh |
| 141 | - store_artifacts: |
| 142 | path: harfbuzz-win32.zip |
Caleb Maclennan | 610ed3b | 2020-09-11 10:47:08 +0300 | [diff] [blame] | 143 | - persist_to_workspace: |
| 144 | root: . |
| 145 | paths: harfbuzz-win32.zip |
| 146 | |
| 147 | publish-win32: |
| 148 | executor: win32-executor |
| 149 | steps: |
Caleb Maclennan | f4dea33 | 2020-09-11 17:23:00 +0300 | [diff] [blame] | 150 | - checkout |
Caleb Maclennan | 610ed3b | 2020-09-11 10:47:08 +0300 | [diff] [blame] | 151 | - attach_workspace: |
| 152 | at: . |
Caleb Maclennan | c70f509 | 2020-09-11 14:54:02 +0300 | [diff] [blame] | 153 | - run: | |
Caleb Maclennan | f4dea33 | 2020-09-11 17:23:00 +0300 | [diff] [blame] | 154 | mv harfbuzz-win32{,-$CIRCLE_TAG}.zip |
| 155 | .ci/publish_release_artifact.sh harfbuzz-win32-$CIRCLE_TAG.zip |
ebraminio | cd8c62f | 2017-11-21 01:07:26 -0500 | [diff] [blame] | 156 | |
Khaled Hosny | ddb4f9b | 2021-08-15 17:24:51 +0200 | [diff] [blame] | 157 | crossbuild-win64: |
Khaled Hosny | e38b873 | 2021-09-07 14:13:23 +0200 | [diff] [blame] | 158 | executor: win64-executor |
Khaled Hosny | ddb4f9b | 2021-08-15 17:24:51 +0200 | [diff] [blame] | 159 | steps: |
| 160 | - checkout |
| 161 | - run: sudo apt update && DEBIAN_FRONTEND=noninteractive sudo apt install -y ninja-build gtk-doc-tools python3 python3-pip git g++-mingw-w64-x86-64 zip |
| 162 | - run: pip3 install meson==0.56.0 --upgrade |
| 163 | - run: bash .ci/build-win64.sh |
| 164 | - store_artifacts: |
| 165 | path: harfbuzz-win64.zip |
| 166 | - persist_to_workspace: |
| 167 | root: . |
| 168 | paths: harfbuzz-win64.zip |
| 169 | |
| 170 | publish-win64: |
Khaled Hosny | e38b873 | 2021-09-07 14:13:23 +0200 | [diff] [blame] | 171 | executor: win64-executor |
Khaled Hosny | ddb4f9b | 2021-08-15 17:24:51 +0200 | [diff] [blame] | 172 | steps: |
| 173 | - checkout |
| 174 | - attach_workspace: |
| 175 | at: . |
| 176 | - run: | |
| 177 | mv harfbuzz-win64{,-$CIRCLE_TAG}.zip |
| 178 | .ci/publish_release_artifact.sh harfbuzz-win64-$CIRCLE_TAG.zip |
| 179 | |
| 180 | |
ebraminio | b7982c9 | 2017-10-31 12:42:08 -0700 | [diff] [blame] | 181 | workflows: |
| 182 | version: 2 |
Caleb Maclennan | 610ed3b | 2020-09-11 10:47:08 +0300 | [diff] [blame] | 183 | |
ebraminio | b7982c9 | 2017-10-31 12:42:08 -0700 | [diff] [blame] | 184 | build: |
| 185 | jobs: |
Khaled Hosny | 5f5a8b4 | 2021-07-12 22:24:14 +0200 | [diff] [blame] | 186 | - macos-aat-fonts |
Caleb Maclennan | 7f9173d | 2021-08-18 14:43:54 +0300 | [diff] [blame] | 187 | - distcheck: |
| 188 | filters: # must have filter or won't work as a dependency |
| 189 | tags: |
| 190 | only: /.*/ |
Caleb Maclennan | 65be538 | 2020-09-11 16:46:34 +0300 | [diff] [blame] | 191 | - publish-dist: |
| 192 | requires: |
| 193 | - distcheck |
| 194 | filters: |
| 195 | tags: |
Caleb Maclennan | e43b9a2 | 2020-09-11 22:15:10 +0300 | [diff] [blame] | 196 | only: /^\d+\.\d+\.\d+$/ |
Caleb Maclennan | 65be538 | 2020-09-11 16:46:34 +0300 | [diff] [blame] | 197 | branches: |
| 198 | ignore: /.*/ |
Ebrahim Byagowi | e4f9969 | 2020-07-08 15:10:25 +0430 | [diff] [blame] | 199 | - fedora-valgrind |
| 200 | - alpine |
Khaled Hosny | 094406b | 2021-02-10 22:49:27 +0200 | [diff] [blame] | 201 | #- archlinux |
Khaled Hosny | ed65577 | 2021-11-20 20:51:26 +0200 | [diff] [blame] | 202 | - asan-ubsan |
| 203 | - tsan |
| 204 | - msan |
| 205 | - clang-cxx2a |
Caleb Maclennan | 7f9173d | 2021-08-18 14:43:54 +0300 | [diff] [blame] | 206 | - crossbuild-win32: |
| 207 | filters: # must have filter or won't work as a dependency |
| 208 | tags: |
| 209 | only: /.*/ |
| 210 | - crossbuild-win64: |
| 211 | filters: # must have filter or won't work as a dependency |
| 212 | tags: |
| 213 | only: /.*/ |
Caleb Maclennan | 610ed3b | 2020-09-11 10:47:08 +0300 | [diff] [blame] | 214 | - publish-win32: |
| 215 | requires: |
| 216 | - crossbuild-win32 |
| 217 | filters: |
| 218 | tags: |
Caleb Maclennan | e43b9a2 | 2020-09-11 22:15:10 +0300 | [diff] [blame] | 219 | only: /^\d+\.\d+\.\d+$/ |
Caleb Maclennan | 610ed3b | 2020-09-11 10:47:08 +0300 | [diff] [blame] | 220 | branches: |
| 221 | ignore: /.*/ |
Khaled Hosny | ddb4f9b | 2021-08-15 17:24:51 +0200 | [diff] [blame] | 222 | - publish-win64: |
| 223 | requires: |
| 224 | - crossbuild-win64 |
| 225 | filters: |
| 226 | tags: |
| 227 | only: /^\d+\.\d+\.\d+$/ |
| 228 | branches: |
| 229 | ignore: /.*/ |