-
-
Notifications
You must be signed in to change notification settings - Fork 231
152 lines (145 loc) · 4.78 KB
/
preview-deployments.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# CI to release the project for Linux, Windows, and MacOS
# The purpose of this action is to verify if the release builds are working or not.
name: Preview Release
on:
push:
branches:
- main
pull_request:
branches:
- main
env:
UV_SYSTEM_PYTHON: 1
jobs:
macos:
runs-on: macos-12
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-apple-darwin
- name: Build wheels - x86_64
uses: PyO3/maturin-action@v1
with:
target: x86_64
args: -i python --release --out dist --no-sdist
- name: Install build wheel - x86_64
run: |
uv pip install --force-reinstall dist/robyn*.whl
cd ~ && python -c 'import robyn'
- name: Build wheels - universal2
uses: PyO3/maturin-action@v1
with:
args: -i python --release --universal2 --out dist --no-sdist
- name: Install build wheel - universal2
run: |
uv pip install --force-reinstall dist/robyn*_universal2.whl
cd ~ && python -c 'import robyn'
windows:
runs-on: windows-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
target: [x64, x86]
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.target }}
- uses: dtolnay/rust-toolchain@stable
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: -i python --release --out dist --no-sdist
- name: Install build wheel
shell: bash
run: |
uv pip install --force-reinstall dist/robyn*.whl
cd ~ && python -c 'import robyn'
linux:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
target: [x86_64, i686]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install uv
uses: astral-sh/setup-uv@v3
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Build Wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
manylinux: auto
args: -i python${{ matrix.python-version }} --release --out dist --no-sdist
- name: Install build wheel
if: matrix.target == 'x86_64'
run: |
uv pip install --force-reinstall dist/robyn*.whl
cd ~ && python -c 'import robyn'
linux-cross:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python:
[
{ version: "3.8", abi: "cp38-cp38" },
{ version: "3.9", abi: "cp39-cp39" },
{ version: "3.10", abi: "cp310-cp310" },
{ version: "3.11", abi: "cp311-cp311" },
{ version: "3.12", abi: "cp312-cp312" },
]
target: [aarch64, armv7]
steps:
- uses: actions/checkout@v3
- name: Build Wheels
uses: PyO3/maturin-action@v1
env:
PYO3_CROSS_LIB_DIR: /opt/python/${{ matrix.python.abi }}/lib
with:
target: ${{ matrix.target }}
manylinux: auto
args: -i python${{matrix.python.version}} --release --out dist --no-sdist
- uses: uraimo/run-on-arch-action@v2
name: Install build wheel
with:
arch: ${{ matrix.target }}
distro: ubuntu20.04
githubToken: ${{ github.token }}
# Mount the dist directory as /artifacts in the container
dockerRunArgs: |
--volume "${PWD}/dist:/artifacts"
install: |
apt update -y
apt install -y gcc musl-dev python3-dev # this is needed for psutil
apt install -y --no-install-recommends software-properties-common
add-apt-repository ppa:deadsnakes/ppa
apt update -y
PYTHON=python${{ matrix.python.version }}
apt install -y $PYTHON $PYTHON-venv
run: |
ls -lrth /artifacts
PYTHON=python${{ matrix.python.version }}
$PYTHON --version
$PYTHON -m venv venv
source venv/bin/activate
pip install --upgrade pip setuptools wheel
pip install --force-reinstall dist/robyn*.whl
cd ~ && python -c 'import robyn'