Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 5f2af21

Browse filesBrowse files
timfelmsimacek
andauthored
Add GraalPy support (#694)
* Add support for graalpy * add graalpy test workflow * format, lint and build * symlink graalpy binaries names * fix macos names for graalpy * Don't attempt to update pip for graalpy * Remove test schedule * Extract common getBinaryDirectory function for PyPy and GraalPy * Clean up and format * Pass GitHub token to GraalPy queries * Utilize pagination when querying GraalPy GitHub releases * Build * Fix lint errors * Deal with possible multiple artifacts for a single releases * Skip few GraalPy tests on windows - we don't have a windows release yet * Fix GraalPy test on Mac OS * Build * Skip one more GraalPy test on windows --------- Co-authored-by: Michael Simacek <michael.simacek@oracle.com>
1 parent 3467d92 commit 5f2af21
Copy full SHA for 5f2af21

12 files changed

+7429
-27
lines changed

‎.github/workflows/test-graalpy.yml

Copy file name to clipboard
+116Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
name: Validate GraalPy e2e
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths-ignore:
8+
- '**.md'
9+
pull_request:
10+
paths-ignore:
11+
- '**.md'
12+
13+
jobs:
14+
setup-graalpy:
15+
name: Setup GraalPy ${{ matrix.graalpy }} ${{ matrix.os }}
16+
runs-on: ${{ matrix.os }}
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
os: [macos-latest, ubuntu-20.04, ubuntu-latest]
21+
graalpy:
22+
- 'graalpy-23.0'
23+
- 'graalpy-22.3'
24+
25+
steps:
26+
- name: Checkout
27+
uses: actions/checkout@v3
28+
29+
- name: setup-python ${{ matrix.graalpy }}
30+
id: setup-python
31+
uses: ./
32+
with:
33+
python-version: ${{ matrix.graalpy }}
34+
35+
- name: Check python-path
36+
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
37+
shell: bash
38+
39+
- name: GraalPy and Python version
40+
run: python --version
41+
42+
- name: Run simple code
43+
run: python -c 'import math; print(math.factorial(5))'
44+
45+
- name: Assert GraalPy is running
46+
run: |
47+
import platform
48+
assert platform.python_implementation().lower() == "graalvm"
49+
shell: python
50+
51+
- name: Assert expected binaries (or symlinks) are present
52+
run: |
53+
EXECUTABLE=${{ matrix.graalpy }}
54+
EXECUTABLE=${EXECUTABLE/graalpy-/graalpy} # remove the first '-' in "graalpy-X.Y" -> "graalpyX.Y" to match executable name
55+
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffixe
56+
${EXECUTABLE} --version
57+
shell: bash
58+
59+
setup-graalpy-noenv:
60+
name: Setup GraalPy ${{ matrix.graalpy }} ${{ matrix.os }} (noenv)
61+
runs-on: ${{ matrix.os }}
62+
strategy:
63+
fail-fast: false
64+
matrix:
65+
os: [macos-latest, ubuntu-20.04, ubuntu-latest]
66+
graalpy: ['graalpy23.0', 'graalpy22.3']
67+
68+
steps:
69+
- name: Checkout
70+
uses: actions/checkout@v3
71+
72+
- name: setup-python ${{ matrix.graalpy }}
73+
id: setup-python
74+
uses: ./
75+
with:
76+
python-version: ${{ matrix.graalpy }}
77+
update-environment: false
78+
79+
- name: GraalPy and Python version
80+
run: ${{ steps.setup-python.outputs.python-path }} --version
81+
82+
- name: Run simple code
83+
run: ${{ steps.setup-python.outputs.python-path }} -c 'import math; print(math.factorial(5))'
84+
85+
check-latest:
86+
runs-on: ${{ matrix.os }}
87+
strategy:
88+
fail-fast: false
89+
matrix:
90+
os: [ubuntu-latest, macos-latest]
91+
steps:
92+
- uses: actions/checkout@v3
93+
- name: Setup GraalPy and check latest
94+
uses: ./
95+
with:
96+
python-version: 'graalpy-23.x'
97+
check-latest: true
98+
- name: GraalPy and Python version
99+
run: python --version
100+
101+
- name: Run simple code
102+
run: python -c 'import math; print(math.factorial(5))'
103+
104+
- name: Assert GraalPy is running
105+
run: |
106+
import platform
107+
assert platform.python_implementation().lower() == "graalvm"
108+
shell: python
109+
110+
- name: Assert expected binaries (or symlinks) are present
111+
run: |
112+
EXECUTABLE="graalpy-23.0"
113+
EXECUTABLE=${EXECUTABLE/-/} # remove the first '-' in "graalpy-X.Y" -> "graalpyX.Y" to match executable name
114+
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffixe
115+
${EXECUTABLE} --version
116+
shell: bash

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.