Skip to content

Update CI to use newer python versions #67

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 227 commits into from
May 1, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
227 commits
Select commit Hold shift + click to select a range
5a4bf80
update setup.py
mattkjames7 Apr 24, 2025
140420f
started modifying workflow
mattkjames7 Apr 24, 2025
467be70
modify startup memgraph
mattkjames7 Apr 24, 2025
cebc3a6
updated workflow
mattkjames7 Apr 24, 2025
1035de9
update concurrency
mattkjames7 Apr 24, 2025
a7a5150
update action version
mattkjames7 Apr 24, 2025
1b37b55
fix docker run command
mattkjames7 Apr 24, 2025
b0cb205
update apt
mattkjames7 Apr 24, 2025
4dc09d1
install deadsnakes
mattkjames7 Apr 24, 2025
fe9574c
install deadsnakes
mattkjames7 Apr 24, 2025
250dbed
run on self hosted
mattkjames7 Apr 24, 2025
534afcd
update workflow
mattkjames7 Apr 24, 2025
6cfd6c1
local package
mattkjames7 Apr 24, 2025
2a61df9
always cleanup
mattkjames7 Apr 24, 2025
68cea07
echo
mattkjames7 Apr 24, 2025
eb4bb88
update workflow
mattkjames7 Apr 24, 2025
cca835f
update workflow
mattkjames7 Apr 24, 2025
eedb974
fix syntax
mattkjames7 Apr 24, 2025
e63aef2
fix syntax
mattkjames7 Apr 24, 2025
7ffc8e5
curl package
mattkjames7 Apr 24, 2025
642fc2a
break system packages
mattkjames7 Apr 24, 2025
38afe94
update workflow
mattkjames7 Apr 24, 2025
bc3fa91
update workflow
mattkjames7 Apr 24, 2025
49b856f
update workflow
mattkjames7 Apr 24, 2025
978726d
update workflow
mattkjames7 Apr 24, 2025
29e6750
added missing cmake
mattkjames7 Apr 24, 2025
2e5d2bc
added openssl
mattkjames7 Apr 24, 2025
5e2e30c
netcat
mattkjames7 Apr 24, 2025
5584ad4
netcat
mattkjames7 Apr 24, 2025
9eda0bd
try fedora
mattkjames7 Apr 25, 2025
6d241d6
fix fedora download link
mattkjames7 Apr 25, 2025
b60f1fa
added gcc to fedora setup
mattkjames7 Apr 25, 2025
d8251fd
use static ssl option
mattkjames7 Apr 28, 2025
f18a46f
use static ssl option
mattkjames7 Apr 28, 2025
b9f57d3
remove build isolation
mattkjames7 Apr 28, 2025
4467b3f
install wheel
mattkjames7 Apr 28, 2025
a82f538
added missing python header for fedora
mattkjames7 Apr 28, 2025
b789b68
try differrent static option
mattkjames7 Apr 28, 2025
1a8ef8c
revert static ssl option
mattkjames7 Apr 28, 2025
aef47fb
run all linux tests this time
mattkjames7 Apr 28, 2025
11b3863
install wheel via dnf
mattkjames7 Apr 28, 2025
ed8da53
no fail fast
mattkjames7 Apr 28, 2025
a34d05d
added step to set env variables and modifed artifact name
mattkjames7 Apr 28, 2025
7a982cd
update windows CI
mattkjames7 Apr 28, 2025
899ee4a
test everything
mattkjames7 Apr 28, 2025
9ef782c
new upload artifact
mattkjames7 Apr 28, 2025
dcfc9c4
move step and change minimum python version
mattkjames7 Apr 28, 2025
516aa05
udpate macos build
mattkjames7 Apr 28, 2025
4eb2126
use latest tag for windows!
mattkjames7 Apr 28, 2025
7683f05
don't fail fast
mattkjames7 Apr 28, 2025
c202220
no more linux on push
mattkjames7 Apr 28, 2025
ebf565f
added setuptools to macos install
mattkjames7 Apr 28, 2025
708584f
use bash
mattkjames7 Apr 28, 2025
7ad5d05
use different shell for mg version
mattkjames7 Apr 28, 2025
e8e72d0
break system packages for macos
mattkjames7 Apr 28, 2025
11cd094
try using dynamically linked ssl
mattkjames7 Apr 28, 2025
cee27f4
test macos on workflow dispatch
mattkjames7 Apr 28, 2025
a142e35
added latest windows
mattkjames7 Apr 28, 2025
6a94704
udpate python versions to test
mattkjames7 Apr 28, 2025
3d47adc
install package from dist dir
mattkjames7 Apr 28, 2025
b4012ef
update pip install
mattkjames7 Apr 28, 2025
e76f8ee
try using sdist
mattkjames7 Apr 28, 2025
336435e
use msys shell
mattkjames7 Apr 28, 2025
2b3ece3
update workflow
mattkjames7 Apr 28, 2025
fc90946
update windows ci
mattkjames7 Apr 28, 2025
7a3d7ed
modify cflags
mattkjames7 Apr 28, 2025
d2d98a7
udpate setup
mattkjames7 Apr 28, 2025
9436d66
udpate setup
mattkjames7 Apr 28, 2025
b05ec70
udpate setup
mattkjames7 Apr 28, 2025
a61a98b
udpate setup
mattkjames7 Apr 28, 2025
189a307
uncomment python versions
mattkjames7 Apr 29, 2025
f9e4327
new workflow for windows
mattkjames7 Apr 29, 2025
bbe7ee4
added python to path variable
mattkjames7 Apr 29, 2025
0be6e94
fix unbound variable
mattkjames7 Apr 29, 2025
7e08b75
update sleep command
mattkjames7 Apr 29, 2025
a5915a4
disable telemetry
mattkjames7 Apr 29, 2025
2b9f2d4
added msys to path
mattkjames7 Apr 29, 2025
3d714db
added debug steps
mattkjames7 Apr 29, 2025
27bc388
added debug steps
mattkjames7 Apr 29, 2025
d41c914
use static openssl
mattkjames7 Apr 29, 2025
cd218b0
added missing linker flags
mattkjames7 Apr 29, 2025
ef3fe57
added missing linker flags
mattkjames7 Apr 29, 2025
c3da2e7
added missing linker flags
mattkjames7 Apr 29, 2025
0a17e6f
added missing linker flags
mattkjames7 Apr 29, 2025
e003012
added missing linker flags
mattkjames7 Apr 29, 2025
9488f74
added missing linker flags
mattkjames7 Apr 29, 2025
ef14244
added missing linker flags
mattkjames7 Apr 29, 2025
9ba3529
update mgclient
mattkjames7 Apr 29, 2025
8e3751a
revert changes
mattkjames7 Apr 29, 2025
5d361db
dynamic
mattkjames7 Apr 29, 2025
8313943
debug step
mattkjames7 Apr 29, 2025
22a1db6
path
mattkjames7 Apr 29, 2025
6c59412
path
mattkjames7 Apr 29, 2025
0662fcc
path
mattkjames7 Apr 29, 2025
946bf2e
fix step
mattkjames7 Apr 29, 2025
0f6582f
udpate memgraph step
mattkjames7 Apr 29, 2025
fac7f55
added empy var
mattkjames7 Apr 29, 2025
d9c73d0
added verification step
mattkjames7 Apr 29, 2025
56ce7fa
remove copy step
mattkjames7 Apr 29, 2025
f4378e1
remove unrecognised arg
mattkjames7 Apr 29, 2025
21a9513
mkdir
mattkjames7 Apr 29, 2025
a45caa2
try starting memgraph without ssl
mattkjames7 Apr 29, 2025
4dda350
print logs
mattkjames7 Apr 29, 2025
9a3be71
remove nohup
mattkjames7 Apr 29, 2025
d27087e
remove nohup
mattkjames7 Apr 29, 2025
ce27895
loosen check
mattkjames7 Apr 29, 2025
3f3a080
ps aux
mattkjames7 Apr 29, 2025
b02eba7
added strange
mattkjames7 Apr 29, 2025
98e0275
sleep
mattkjames7 Apr 29, 2025
20d5fd9
print log
mattkjames7 Apr 29, 2025
ed6f861
added DLL hack
mattkjames7 Apr 29, 2025
9099624
trace
mattkjames7 Apr 29, 2025
2a94b22
use different step
mattkjames7 Apr 29, 2025
2220ba5
use home
mattkjames7 Apr 29, 2025
d13cbd5
try strange
mattkjames7 Apr 29, 2025
4ae35cd
use home
mattkjames7 Apr 29, 2025
e961b44
remove slow steps
mattkjames7 Apr 29, 2025
a9022cf
hide more steps
mattkjames7 Apr 29, 2025
865d25e
hide more steps
mattkjames7 Apr 29, 2025
c42407a
update ci
mattkjames7 Apr 29, 2025
1185bdf
use client
mattkjames7 Apr 29, 2025
8ba661b
path
mattkjames7 Apr 29, 2025
d222fb1
use msys
mattkjames7 Apr 29, 2025
9c93916
back to static
mattkjames7 Apr 29, 2025
e60bb01
setup.py
mattkjames7 Apr 29, 2025
5deca15
print pkgconfig
mattkjames7 Apr 29, 2025
71025c2
move check
mattkjames7 Apr 29, 2025
8ae5952
update flags
mattkjames7 Apr 29, 2025
9087fc9
update flags
mattkjames7 Apr 29, 2025
4c91cf6
update cmakelists
mattkjames7 Apr 29, 2025
af40c4a
update cmakelists
mattkjames7 Apr 29, 2025
dac94cc
remove copy dll
mattkjames7 Apr 29, 2025
3f0737f
remove libs
mattkjames7 Apr 29, 2025
72a5d00
remove libs
mattkjames7 Apr 29, 2025
28ee9ae
setup.py
mattkjames7 Apr 29, 2025
fdf3264
added memgraph back in
mattkjames7 Apr 29, 2025
a0085a2
updaate ini
mattkjames7 Apr 29, 2025
ae91f22
disable ssl
mattkjames7 Apr 29, 2025
65d518c
disable ssl
mattkjames7 Apr 29, 2025
46aae5b
use ssl
mattkjames7 Apr 29, 2025
5f64450
remove ps aux
mattkjames7 Apr 29, 2025
5fb34a6
separate windows only args
mattkjames7 Apr 29, 2025
aecfa74
modify workflow
mattkjames7 Apr 29, 2025
a77730c
wheel
mattkjames7 Apr 29, 2025
41fa4a7
use venv
mattkjames7 Apr 29, 2025
fd54cb4
remove sdist
mattkjames7 Apr 29, 2025
8ce91a1
all the mac
mattkjames7 Apr 29, 2025
d16e7b6
even more mac
mattkjames7 Apr 29, 2025
f154e54
fix rocksdb issue
mattkjames7 Apr 29, 2025
bef5b81
update docs
mattkjames7 Apr 29, 2025
d895aac
test all now
mattkjames7 Apr 29, 2025
1429c42
updated windows build
mattkjames7 Apr 29, 2025
9091e78
fixes
mattkjames7 Apr 29, 2025
b91baba
ignore directory
mattkjames7 Apr 29, 2025
2403a31
update ci
mattkjames7 Apr 29, 2025
0722557
use newer fedora
mattkjames7 Apr 30, 2025
d3d8d5b
added script for installing linux deps
mattkjames7 Apr 30, 2025
d5e6d64
fix distro detection
mattkjames7 Apr 30, 2025
9e329e9
fix root issues
mattkjames7 Apr 30, 2025
7f4848a
use new script in container
mattkjames7 Apr 30, 2025
3f2859f
build wheel
mattkjames7 Apr 30, 2025
87b2b4b
fix sudo check
mattkjames7 Apr 30, 2025
33d279d
handle missing python
mattkjames7 Apr 30, 2025
b299799
handle missing python
mattkjames7 Apr 30, 2025
e8d75b7
fix rpm dep
mattkjames7 Apr 30, 2025
62fdc64
remove comments
mattkjames7 Apr 30, 2025
cddc29f
update python version
mattkjames7 Apr 30, 2025
484bee2
added dev package
mattkjames7 Apr 30, 2025
72d0a08
added dev package
mattkjames7 Apr 30, 2025
0ae72fa
we don't have fedora 42 package yet
mattkjames7 Apr 30, 2025
a6c78c1
force update
mattkjames7 Apr 30, 2025
29e656e
remove ps aux command
mattkjames7 Apr 30, 2025
2dc509e
new script for getting memgraph version
mattkjames7 Apr 30, 2025
1ceab9d
added script to wait for memgraph£
mattkjames7 Apr 30, 2025
b2e67d9
use new script
mattkjames7 Apr 30, 2025
d3f7db0
fix alignment
mattkjames7 Apr 30, 2025
d9f699b
allow all to run
mattkjames7 Apr 30, 2025
755ac54
use new version of mgclient
mattkjames7 Apr 30, 2025
9513a26
new step
mattkjames7 Apr 30, 2025
ad91c60
try bash
mattkjames7 Apr 30, 2025
e1f98d5
nc
mattkjames7 Apr 30, 2025
737d628
nc
mattkjames7 Apr 30, 2025
0207e6c
chck host, not local host
mattkjames7 May 1, 2025
fd32ff1
add mac tests
mattkjames7 May 1, 2025
9b250f7
source env
mattkjames7 May 1, 2025
cf1cec7
remove nc
mattkjames7 May 1, 2025
08cfad8
update ci
mattkjames7 May 1, 2025
777075a
added docker login
mattkjames7 May 1, 2025
f401bd2
line endings
mattkjames7 May 1, 2025
aceb1c4
added docs workflow
mattkjames7 May 1, 2025
c24edd4
modify timeout
mattkjames7 May 1, 2025
475f8df
udpate ci
mattkjames7 May 1, 2025
e3f18d3
mac hacking
mattkjames7 May 1, 2025
dfd4df1
mac hacking
mattkjames7 May 1, 2025
e344162
echo
mattkjames7 May 1, 2025
b417c92
sed
mattkjames7 May 1, 2025
4e70f47
modify mac docker config
mattkjames7 May 1, 2025
d8b6349
modify timeout for mgconsole
mattkjames7 May 1, 2025
9e2ab8d
remove macos tests
mattkjames7 May 1, 2025
558873e
remove wait script from windows test
mattkjames7 May 1, 2025
b38523c
added resuable workflow
mattkjames7 May 1, 2025
4d23d65
update ci
mattkjames7 May 1, 2025
a52c4b2
inherit secrets
mattkjames7 May 1, 2025
aaad523
fix macos naming
mattkjames7 May 1, 2025
df13e1c
update ci
mattkjames7 May 1, 2025
eec8ce1
test collect artifacts
mattkjames7 May 1, 2025
20e8892
update workflows
mattkjames7 May 1, 2025
9ed9573
update workflows
mattkjames7 May 1, 2025
e05ce48
update workflows
mattkjames7 May 1, 2025
fa7896b
update workflows
mattkjames7 May 1, 2025
82ddf49
download artifact
mattkjames7 May 1, 2025
dfe8f9e
udpate workflows
mattkjames7 May 1, 2025
46070ae
fix dist directory
mattkjames7 May 1, 2025
140da58
fix dist directory
mattkjames7 May 1, 2025
7d35c9b
run release test on all
mattkjames7 May 1, 2025
6d94256
revert artifact job
mattkjames7 May 1, 2025
6b0950e
fixed repo url
mattkjames7 May 1, 2025
ffae961
udpate docs
mattkjames7 May 1, 2025
b9665a0
use self hosted
mattkjames7 May 1, 2025
e15e640
tidy up workflows
mattkjames7 May 1, 2025
7d3b699
fix linux package version
mattkjames7 May 1, 2025
f127ddd
fix incorrect runner tags
mattkjames7 May 1, 2025
b499430
verbose
mattkjames7 May 1, 2025
1a1a5e0
auditwheel
mattkjames7 May 1, 2025
66e7447
only auditwheel on ubuntu-24.04
mattkjames7 May 1, 2025
5a44971
do full pr test
mattkjames7 May 1, 2025
e306596
remove comment
mattkjames7 May 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions .github/workflows/build_docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Build Docs

on:
workflow_dispatch:
inputs:
publish_doc:
type: boolean
description: 'If set to true, then the documentation will be published.'
default: false
required: false
workflow_call:
inputs:
publish_doc:
type: boolean
description: 'If set to true, then the documentation will be published.'
default: false
required: false

jobs:
build_docs:
name: Build Documentation
runs-on: [self-hosted, Linux, Ubuntu24.04]
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive


- name: Install Python Dependencies
run: |
python3 -m venv env
source env/bin/activate
pip install sphinx

- name: Get Current Python Version
run: |
version="$(( python3 --version 2>&1 || echo ) | grep -Po '(?<=Python )\d+\.\d+' || true)"
echo "Found version $version"
echo "PYTHON_VERSION=$version" >> $GITHUB_ENV

- name: Download Python Artifact
uses: actions/download-artifact@v4
with:
name: pymgclient-linux-${{ env.PYTHON_VERSION }}
path: ./dist

- name: Install Pymgclient
run: |
source env/bin/activate
pip install dist/*.whl

- name: Build docs
run: |
source env/bin/activate
cd docs
make html
rm build/html/.buildinfo
touch build/html/.nojekyll

- name: Deploy docs
if: ${{ github.event.inputs.publish_doc == 'true' }}
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/build/html

- name: Cleanup
if: always()
run: |
rm -rf env || true
239 changes: 60 additions & 179 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,188 +1,69 @@
name: CI
concurrency:
group: ${{ github.head_ref || github.sha }}
cancel-in-progress: true

on:
push:
pull_request:
workflow_dispatch:
inputs:
test_linux:
type: boolean
default: true
description: "Run Linux Build and Test"
test_windows:
type: boolean
default: true
description: "Run Windows Build and Test"
test_macintosh:
type: boolean
default: true
description: "Run Mac OS Build"
build_source_dist:
type: boolean
default: true
description: "Build Source Distribution"
upload_artifacts:
type: boolean
default: true
description: "Upload Artifacts"

schedule:
- cron: "0 1 * * *"

- cron: "0 0 * * 0"

jobs:
build_and_test_ubuntu:
strategy:
matrix:
include:
- {platform: 'ubuntu-20.04', python_version: '3.8', mgversion: '2.0.1'}
- {platform: 'ubuntu-20.04', python_version: '3.8', mgversion: '2.5.2'}
- {platform: 'ubuntu-20.04', python_version: '3.8', mgversion: '2.10.1'}
- {platform: 'ubuntu-22.04', python_version: '3.10', mgversion: '2.5.2'}
- {platform: 'ubuntu-22.04', python_version: '3.10', mgversion: '2.10.1'}
runs-on: ${{ matrix.platform }}
steps:
- name: Cache Memgraph community installer
id: cache-memgraph-community
uses: actions/cache@v1
with:
path: ~/memgraph
key: cache-memgraph-v${{ matrix.mgversion }}-${{ matrix.platform }}-community-installer-v3
- name: Download Memgraph
if: steps.cache-memgraph-community.outputs.cache-hit != 'true'
run: |
mkdir ~/memgraph
MEMGRAPH_PACKAGE_NAME="memgraph_${{ matrix.mgversion }}-1_amd64.deb"
curl -L https://download.memgraph.com/memgraph/v${{ matrix.mgversion }}/${{ matrix.platform }}/${MEMGRAPH_PACKAGE_NAME} > ~/memgraph/memgraph.deb
- name: Install system dependencies
run: |
sudo apt install -y libpython${{ matrix.python_version }} python3-pip python3-setuptools
sudo pip3 install --upgrade networkx pytest pyopenssl sphinx
sudo ln -s /dev/null /etc/systemd/system/memgraph.service # Prevents Memgraph from starting.
sudo dpkg -i ~/memgraph/memgraph.deb
- uses: actions/checkout@v2
with:
submodules: true
- name: Build source distribution
run: python3 setup.py sdist
- name: Install pymgclient with dynamic OpenSSL for Memgraph 1.3.0
if: matrix.mgversion == '1.3.0'
run: python3 -m pip install --global-option=build_ext --global-option="--static-openssl=false" ./dist/pymgclient-*
- name: Install pymgclient
if: matrix.mgversion != '1.3.0'
run: python3 -m pip install ./dist/pymgclient-*
- name: Import mgclient to validate installation
run: python3 -c "import mgclient"
- name: Run tests
run: |
MEMGRAPH_PORT=10000
if [[ "${{ matrix.mgversion }}" != 1* ]]; then
python3 -m pytest -v
else
python3 -m pytest -v -m "not temporal"
fi
- name: Build docs
run: |
cd docs
make html
- name: Save source distribution package
uses: actions/upload-artifact@v2
with:
name: pymgclient
path: dist/
weekly_build:
if: ${{ github.event_name == 'schedule' }}
name: Weekly Build
uses: "./.github/workflows/reusable_buildtest.yml"
with:
test_linux: true
test_windows: true
test_macintosh: true
build_source_dist: false
upload_artifacts: false
secrets: inherit

build_and_test_windows:
runs-on: windows-2019
strategy:
matrix:
arch:
- { mingw: "64", msys: x86_64, python: "x64" }
python_version:
- '3.7'
- '3.10'
env:
# TODO(gitbuda): Fix "The file cannot be accessed by the system... rocksdb_durability"
MG_VERSION: 2.8.0
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Setup python
uses: actions/[email protected]
with:
python-version: ${{ matrix.python_version }}
architecture: ${{ matrix.arch.python }}
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW${{ matrix.arch.mingw }}
update: true
release: false
install: git mingw-w64-${{ matrix.arch.msys }}-toolchain mingw-w64-${{ matrix.arch.msys }}-cmake mingw-w64-${{ matrix.arch.msys }}-openssl
- name: Add mingw${{ matrix.arch.mingw }} to PATH
run: |
# First make sure python would resolve to the windows native python, not mingw one
echo "C:\msys64\mingw${{ matrix.arch.mingw }}\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
echo "${{ env.pythonLocation }}" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Print OpenSSL version
shell: msys2 {0}
run: |
openssl version -a
- uses: Vampire/setup-wsl@v1
with:
distribution: Ubuntu-20.04
- name: Download, install and run Memgraph under WSL
shell: wsl-bash {0} # root shell
run: |
mkdir ~/memgraph
curl -L https://download.memgraph.com/memgraph/v${{ env.MG_VERSION }}/ubuntu-20.04/memgraph_${{ env.MG_VERSION }}-1_amd64.deb --output ~/memgraph/memgraph.deb
dpkg -i ~/memgraph/memgraph.deb
openssl req -x509 -newkey rsa:4096 -days 3650 -nodes -keyout key.pem -out cert.pem -subj "/C=GB/ST=London/L=London/O=Testing Corp./CN=PymgclientTest"
nohup /usr/lib/memgraph/memgraph --bolt-port 7687 --bolt-cert-file="cert.pem" --bolt-key-file="key.pem" --data-directory="~/memgraph/data" --storage-properties-on-edges=true --storage-snapshot-interval-sec=0 --storage-wal-enabled=false --storage-recover-on-startup=false --storage-snapshot-on-exit=false --telemetry-enabled=false --log-file='' &
sleep 1 # Wait for Memgraph a bit.
- run: python -m pip install -U pip wheel setuptools pytest pyopenssl
- name: Build pymgclient
run: python setup.py bdist_wheel
- name: Install pymgclient
run: python -m pip install --verbose -f dist --no-index pymgclient
env:
VERBOSE: 1
- name: Run tests
run: |
python3 -m pytest -v
env:
MEMGRAPH_HOST: "localhost"
MEMGRAPH_STARTED_WITH_SSL:
- name: Save wheel package
uses: actions/upload-artifact@v2
with:
name: pymgclient-win${{ matrix.arch.mingw }}-${{ matrix.python_version }}
path: dist/
pr_test:
if: ${{ github.event_name == 'pull_request' }}
name: Pull Request Tests
uses: "./.github/workflows/reusable_buildtest.yml"
with:
test_linux: true
test_windows: true
test_macintosh: true
build_source_dist: true
upload_artifacts: false
secrets: inherit

build_macos:
strategy:
fail-fast: false
matrix:
platform: [macos-13, macos-12, macos-11]
python_version:
- '3.8'
- '3.10'
include:
- {platform: [macOS-12.1, ARM64, self-hosted], python_version: '3.10'}
- {platform: [macOS-12.1, ARM64, self-hosted], python_version: '3.8'}
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Install python and OpenSSL
run: |
brew install python@${{ matrix.python_version }} [email protected]
brew link --force --overwrite [email protected]
openssl version -a
- name: Manage OpenSSL 3 on ARM machines
if: ${{ contains(matrix.platform, 'ARM64') }}
run: |
brew install openssl@3
brew link --force --overwrite openssl@3
openssl version -a
- name: Make used python version default
run: |
brew unlink python@3 && brew link --force python@${{ matrix.python_version }}
python${{ matrix.python_version }} --version
- name: Install pytest and pyopenssl
run: python${{ matrix.python_version }} -m pip install pyopenssl pytest
- name: Build pymgclient
run: python${{ matrix.python_version }} setup.py bdist_wheel
- name: Install pymgclient
run: python${{ matrix.python_version }} -m pip install -f dist --no-index pymgclient
- name: Import mgclient to validate installation
run: python${{ matrix.python_version }} -c "import mgclient"
- name: Save artifact name on x86 machines
if: ${{ !contains(matrix.platform, 'ARM64') }}
run: echo "OS_TYPE=${{ matrix.platform }}" >> $GITHUB_ENV
- name: Save artifact name on ARM64 machines
if: ${{ contains(matrix.platform, 'ARM64') }}
# Convert macOS-11.6-ARM64 to macos-11.6-arm64 to be consistent with full lowercase naming
run: echo OS_TYPE=`echo "${{ matrix.platform[0] }}-${{ matrix.platform[1] }}" | tr "[:upper:]" "[:lower:]"` >> $GITHUB_ENV
- name: Save wheel package
uses: actions/upload-artifact@v2
with:
name: pymgclient-${{ env.OS_TYPE }}-${{ matrix.python_version }}
path: dist/
manual_test:
if: ${{ github.event_name == 'workflow_dispatch' }}
name: Manual Test
uses: "./.github/workflows/reusable_buildtest.yml"
with:
test_linux: ${{ inputs.test_linux }}
test_windows: ${{ inputs.test_windows }}
test_macintosh: ${{ inputs.test_macintosh }}
build_source_dist: ${{ inputs.build_source_dist }}
upload_artifacts: ${{ inputs.upload_artifacts }}
secrets: inherit
Loading
Loading