-
Notifications
You must be signed in to change notification settings - Fork 635
Add GraalPy support #694
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
Add GraalPy support #694
Changes from 5 commits
ad7b7ba
f40a022
6db14b2
928058c
b695933
b271e81
fb29473
08f6b91
3d8a1eb
62fe528
feb1894
7673153
546edbc
8c79e75
cc7e956
7f48d18
5b60f8c
6713183
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
name: Validate GraalPy e2e | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
paths-ignore: | ||
- '**.md' | ||
pull_request: | ||
paths-ignore: | ||
- '**.md' | ||
schedule: | ||
- cron: 30 3 * * * | ||
|
||
jobs: | ||
setup-graalpy: | ||
name: Setup GraalPy ${{ matrix.graalpy }} ${{ matrix.os }} | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [macos-latest, ubuntu-20.04, ubuntu-latest] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. GraalPy is available for Windows, too. Would it be an option to test against Windows? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For 23.0 there were no Windows binary releases. The upcoming 23.1 will have Windows releases, but they are very limited, things like native extensions do not work, yet. Tests for Windows will likely just not pass. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Our plan is to have more complete Windows support for our 2024 release, so we'll have to do a follow up PR next year. |
||
graalpy: | ||
- 'graalpy-23.0' | ||
- 'graalpy-22.3' | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: setup-python ${{ matrix.graalpy }} | ||
id: setup-python | ||
uses: ./ | ||
with: | ||
python-version: ${{ matrix.graalpy }} | ||
|
||
- name: Check python-path | ||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}' | ||
shell: bash | ||
|
||
- name: GraalPy and Python version | ||
run: python --version | ||
|
||
- name: Run simple code | ||
run: python -c 'import math; print(math.factorial(5))' | ||
|
||
- name: Assert GraalPy is running | ||
run: | | ||
import platform | ||
assert platform.python_implementation().lower() == "graalvm" | ||
shell: python | ||
|
||
- name: Assert expected binaries (or symlinks) are present | ||
run: | | ||
EXECUTABLE=${{ matrix.graalpy }} | ||
EXECUTABLE=${EXECUTABLE/graalpy-/graalpy} # remove the first '-' in "graalpy-X.Y" -> "graalpyX.Y" to match executable name | ||
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffixe | ||
${EXECUTABLE} --version | ||
shell: bash | ||
|
||
setup-graalpy-noenv: | ||
name: Setup GraalPy ${{ matrix.graalpy }} ${{ matrix.os }} (noenv) | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [macos-latest, ubuntu-20.04, ubuntu-latest] | ||
graalpy: ['graalpy23.0', 'graalpy22.3'] | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: setup-python ${{ matrix.graalpy }} | ||
id: setup-python | ||
uses: ./ | ||
with: | ||
python-version: ${{ matrix.graalpy }} | ||
update-environment: false | ||
|
||
- name: GraalPy and Python version | ||
run: ${{ steps.setup-python.outputs.python-path }} --version | ||
|
||
- name: Run simple code | ||
run: ${{ steps.setup-python.outputs.python-path }} -c 'import math; print(math.factorial(5))' | ||
|
||
check-latest: | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-latest, macos-latest] | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Setup GraalPy and check latest | ||
uses: ./ | ||
with: | ||
python-version: 'graalpy-23.x' | ||
check-latest: true | ||
- name: GraalPy and Python version | ||
run: python --version | ||
|
||
- name: Run simple code | ||
run: python -c 'import math; print(math.factorial(5))' | ||
|
||
- name: Assert GraalPy is running | ||
run: | | ||
import platform | ||
assert platform.python_implementation().lower() == "graalvm" | ||
shell: python | ||
|
||
- name: Assert expected binaries (or symlinks) are present | ||
run: | | ||
EXECUTABLE="graalpy-23.0" | ||
EXECUTABLE=${EXECUTABLE/-/} # remove the first '-' in "graalpy-X.Y" -> "graalpyX.Y" to match executable name | ||
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffixe | ||
${EXECUTABLE} --version | ||
shell: bash |
Uh oh!
There was an error while loading. Please reload this page.