Skip to content

Commit 01f6223

Browse files
committed
CI: fix tests for macos & ubuntu
1 parent 440302a commit 01f6223

File tree

3 files changed

+21
-72
lines changed

3 files changed

+21
-72
lines changed

.github/workflows/tests.yml

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
os: [ubuntu-latest, macos-latest]
17-
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
17+
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
1818
steps:
1919
- uses: actions/checkout@v3
2020
- name: Set up Python ${{ matrix.python-version }}
@@ -25,7 +25,6 @@ jobs:
2525
- name: Install Dependency and Configure
2626
if: runner.os == 'macOS'
2727
run: |
28-
brew install cairo
2928
echo "LD_LIBRARY_PATH=$HOME/pangoprefix/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
3029
echo "PKG_CONFIG_PATH=$HOME/pangoprefix/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
3130
- name: Set ENV
@@ -43,22 +42,14 @@ jobs:
4342
if: steps.cache-pango.outputs.cache-hit != 'true'
4443
run: |
4544
source packing/build_pango_tests.sh
46-
4745
- name: Install python dependencies
4846
run: |
4947
python -m pip install --upgrade pip
5048
pip install -r requirements-dev.txt
49+
- name: Build Project
50+
run: python setup.py build_ext -i
5151
- name: Run Tests
52-
run: |
53-
python setup.py build_ext -i
54-
python setup.py sdist
55-
pip install .
56-
pytest
57-
- name: Coverage
58-
run: |
59-
coverage report
60-
coverage html
61-
coverage xml
52+
run: pytest -s
6253
- uses: codecov/codecov-action@v3
6354
with:
6455
file: ./.coverage/coverage.xml

packing/build_pango_tests.sh

Lines changed: 5 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@
22
# build and install pango
33
set -e
44

5-
PANGO_VERSION=1.50.11
6-
GLIB_VERSION=2.74.0
7-
FRIBIDI_VERSION=1.0.10
8-
CAIRO_VERSION=1.17.6
9-
HARFBUZZ_VERSION=5.3.1
5+
PANGO_VERSION=1.54.0
106

117
FILE_PATH=$PWD
128
PREFIX="$HOME/pangoprefix"
@@ -18,14 +14,7 @@ mkdir pango
1814
cd pango
1915
echo "::group::Downloading Files"
2016

21-
python -m pip install requests
2217
python $FILE_PATH/packing/download_and_extract.py "http://download.gnome.org/sources/pango/${PANGO_VERSION%.*}/pango-${PANGO_VERSION}.tar.xz" pango
23-
python $FILE_PATH/packing/download_and_extract.py "http://download.gnome.org/sources/glib/${GLIB_VERSION%.*}/glib-${GLIB_VERSION}.tar.xz" glib
24-
python $FILE_PATH/packing/download_and_extract.py "https://github.com/fribidi/fribidi/releases/download/v${FRIBIDI_VERSION}/fribidi-${FRIBIDI_VERSION}.tar.xz" fribidi
25-
python $FILE_PATH/packing/download_and_extract.py "https://gitlab.freedesktop.org/cairo/cairo/-/archive/${CAIRO_VERSION}/cairo-${CAIRO_VERSION}.tar.gz" cairo
26-
python $FILE_PATH/packing/download_and_extract.py "https://github.com/harfbuzz/harfbuzz/releases/download/${HARFBUZZ_VERSION}/harfbuzz-${HARFBUZZ_VERSION}.tar.xz" harfbuzz
27-
28-
python -m pip uninstall -y requests
2918

3019
echo "::endgroup::"
3120

@@ -37,38 +26,11 @@ echo "Installing Meson and Ninja"
3726
pip3 install -U meson ninja
3827
echo "::endgroup::"
3928

40-
echo "::group::Building and Install Glib"
41-
meson setup --prefix=$PREFIX --buildtype=release -Dselinux=disabled -Dlibmount=disabled glib_builddir glib
42-
meson compile -C glib_builddir
43-
meson install -C glib_builddir
44-
echo "::endgroup::"
45-
46-
echo "::group::Building and Install Fribidi"
47-
meson setup --prefix=$PREFIX --buildtype=release fribidi_builddir fribidi
48-
meson compile -C fribidi_builddir
49-
meson install -C fribidi_builddir
50-
echo "::endgroup::"
51-
52-
echo "::group::Building and Installing Cairo"
53-
echo "Getting patch"
54-
curl -L https://gitlab.freedesktop.org/cairo/cairo/-/commit/cdb7c298c7b89307ad69b94a1126221bd7c06579.patch -o test.diff
55-
cd cairo
56-
patch -Nbp1 -i "$PWD/../test.diff" || true
57-
# it is fine to fail because the CI config is missing.
58-
cd ..
59-
meson setup --prefix=$PREFIX --default-library=shared --buildtype=release -Dfontconfig=enabled -Dfreetype=enabled -Dglib=enabled -Dzlib=enabled -Dtee=enabled cairo_builddir cairo
60-
meson compile -C cairo_builddir
61-
meson install --no-rebuild -C cairo_builddir
62-
echo "::endgroup::"
63-
64-
echo "::group::Building and Installing Harfbuzz"
65-
meson setup --prefix=$PREFIX -Dcoretext=enabled --buildtype=release -Dtests=disabled -Ddocs=disabled harfbuzz_builddir harfbuzz
66-
meson compile -C harfbuzz_builddir
67-
meson install -C harfbuzz_builddir
68-
echo "::endgroup::"
69-
7029
echo "::group::Buildling and Installing Pango"
71-
meson setup --prefix=$PREFIX --buildtype=release -Dintrospection=disabled pango_builddir pango
30+
meson setup --prefix=$PREFIX --buildtype=release \
31+
-Dintrospection=disabled \
32+
-Dfontconfig=enabled \ # tests depends on fontconfig
33+
pango_builddir pango
7234
meson compile -C pango_builddir
7335
meson install -C pango_builddir
7436
echo "::endgroup::"

packing/download_and_extract.py

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,34 +7,30 @@
77
import tarfile
88
import tempfile
99
from pathlib import Path
10-
11-
import requests
10+
import urllib.request
1211

1312
logging.basicConfig(format="%(levelname)s - %(message)s", level=logging.INFO)
1413
parser = argparse.ArgumentParser(description="Download things.")
1514
parser.add_argument("url", help="the url to download")
1615
parser.add_argument("folder", help="folder name to extract")
1716
args = parser.parse_args()
1817

19-
a = requests.get(args.url)
20-
logging.info("Download Complete Extracting")
21-
assert a.status_code != 404, "Does not exist."
2218
with tempfile.TemporaryDirectory() as tmpdirname:
23-
tmpdirname = Path(tmpdirname)
24-
fname = Path(args.url).name
25-
for i in tmpdirname.iterdir():
26-
print(i)
27-
with open(tmpdirname / fname, "wb") as f:
28-
logging.info(f"Saving to {tmpdirname / fname}")
29-
f.write(a.content)
30-
with tarfile.open(tmpdirname / fname, "r") as tar:
31-
logging.info(f"Extracting {tmpdirname / fname} to {tmpdirname}")
19+
fname = Path(tmpdirname, Path(args.url).name)
20+
21+
logging.info(f"Download & Saving file to {fname}")
22+
23+
urllib.request.urlretrieve(args.url, fname)
24+
25+
with tarfile.open(fname, "r") as tar:
26+
logging.info(f"Extracting {fname} to {tmpdirname}")
3227
tar.extractall(tmpdirname)
28+
3329
logging.info(
34-
f"Moving {str(tmpdirname / Path(Path(args.url).stem).stem)} "
30+
f"Moving {Path(tmpdirname, Path(Path(args.url).stem).stem)} "
3531
f"to {str(args.folder)}"
3632
)
3733
shutil.move(
38-
str(tmpdirname / Path(Path(args.url).stem).stem),
34+
Path(tmpdirname, Path(Path(args.url).stem).stem),
3935
str(args.folder),
4036
)

0 commit comments

Comments
 (0)