Skip to content
This repository was archived by the owner on May 11, 2023. It is now read-only.

Commit b16267a

Browse files
committed
Fix CI
1 parent 974a19c commit b16267a

File tree

6 files changed

+345
-207
lines changed

6 files changed

+345
-207
lines changed

.github/workflows/ci.yaml

+159-174
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,10 @@ concurrency:
1515
cancel-in-progress: true
1616

1717
env:
18-
CARGO_ARGS: --no-default-features --features stdlib,zlib,importlib,encodings,ssl,jit
1918
NON_WASM_PACKAGES: >-
2019
-p rustpython-common
2120
-p rustpython-compiler-core
22-
-p rustpython-compiler
23-
-p rustpython-codegen
2421
-p rustpython-parser
25-
-p rustpython-vm
26-
-p rustpython-stdlib
27-
-p rustpython-jit
28-
-p rustpython-derive
29-
-p rustpython
3022
PLATFORM_INDEPENDENT_TESTS: >-
3123
test_argparse
3224
test_array
@@ -137,12 +129,7 @@ jobs:
137129
run: cargo clippy ${{ env.CARGO_ARGS }} ${{ env.NON_WASM_PACKAGES }} -- -Dwarnings
138130

139131
- name: run rust tests
140-
run: cargo test --workspace --exclude rustpython_wasm --verbose --features threading ${{ env.CARGO_ARGS }} ${{ env.NON_WASM_PACKAGES }}
141-
if: runner.os != 'macOS'
142-
# temp skip ssl linking for Mac to avoid CI failure
143-
- name: run rust tests (MacOS no ssl)
144-
run: cargo test --workspace --exclude rustpython_wasm --verbose --no-default-features --features threading,stdlib,zlib,importlib,encodings,jit ${{ env.NON_WASM_PACKAGES }}
145-
if: runner.os == 'macOS'
132+
run: cargo test --workspace --verbose --features threading ${{ env.CARGO_ARGS }} ${{ env.NON_WASM_PACKAGES }}
146133

147134
- name: check compilation without threading
148135
run: cargo check ${{ env.CARGO_ARGS }}
@@ -221,7 +208,7 @@ jobs:
221208
target: wasm32-unknown-unknown
222209

223210
- name: Check compilation for wasm32
224-
run: cargo check --target wasm32-unknown-unknown --no-default-features
211+
run: cargo check --target wasm32-unknown-unknown
225212

226213
- uses: dtolnay/rust-toolchain@stable
227214
with:
@@ -237,80 +224,80 @@ jobs:
237224
with:
238225
command: check
239226

240-
snippets_cpython:
241-
if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }}
242-
needs: lalrpop
243-
env:
244-
RUST_BACKTRACE: full
245-
name: Run snippets and cpython tests
246-
runs-on: ${{ matrix.os }}
247-
strategy:
248-
matrix:
249-
os: [macos-latest, ubuntu-latest, windows-latest]
250-
fail-fast: false
251-
steps:
252-
- uses: actions/checkout@v3
253-
- name: Cache generated parser
254-
uses: actions/cache@v3
255-
with:
256-
path: compiler/parser/python.rs
257-
key: lalrpop-${{ hashFiles('compiler/parser/python.lalrpop') }}
258-
259-
- uses: dtolnay/rust-toolchain@stable
260-
- uses: actions/setup-python@v4
261-
with:
262-
python-version: "3.11"
263-
- name: Set up the Windows environment
264-
shell: bash
265-
run: |
266-
choco install llvm openssl
267-
echo "OPENSSL_DIR=C:\Program Files\OpenSSL-Win64" >>$GITHUB_ENV
268-
if: runner.os == 'Windows'
269-
- name: Set up the Mac environment
270-
run: brew install autoconf automake libtool openssl@3
271-
if: runner.os == 'macOS'
272-
273-
- uses: Swatinem/rust-cache@v2
274-
- name: build rustpython
275-
run: cargo build --release --verbose --features=threading ${{ env.CARGO_ARGS }}
276-
- uses: actions/setup-python@v4
277-
with:
278-
python-version: "3.11"
279-
- name: run snippets
280-
run: python -m pip install -r requirements.txt && pytest -v
281-
working-directory: ./extra_tests
282-
- if: runner.os == 'Linux'
283-
name: run cpython platform-independent tests
284-
run:
285-
target/release/rustpython -m test -j 1 -u all --slowest --fail-env-changed -v ${{ env.PLATFORM_INDEPENDENT_TESTS }}
286-
- if: runner.os != 'Windows'
287-
name: run cpython platform-dependent tests
288-
run: target/release/rustpython -m test -j 1 -u all --slowest --fail-env-changed -v -x ${{ env.PLATFORM_INDEPENDENT_TESTS }}
289-
- if: runner.os == 'Windows'
290-
name: run cpython platform-dependent tests (windows partial - fixme)
291-
run:
292-
target/release/rustpython -m test -j 1 -u all --slowest --fail-env-changed -v -x ${{ env.PLATFORM_INDEPENDENT_TESTS }}
293-
test_glob
294-
test_importlib
295-
test_io
296-
test_iter
297-
test_os
298-
test_pathlib
299-
test_posixpath
300-
test_shutil
301-
test_venv
302-
- if: runner.os != 'Windows'
303-
name: check that --install-pip succeeds
304-
run: |
305-
mkdir site-packages
306-
target/release/rustpython --install-pip ensurepip --user
307-
- if: runner.os != 'Windows'
308-
name: Check that ensurepip succeeds.
309-
run: |
310-
target/release/rustpython -m ensurepip
311-
target/release/rustpython -c "import pip"
312-
- name: Check whats_left is not broken
313-
run: python -I whats_left.py
227+
# snippets_cpython:
228+
# if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }}
229+
# needs: lalrpop
230+
# env:
231+
# RUST_BACKTRACE: full
232+
# name: Run snippets and cpython tests
233+
# runs-on: ${{ matrix.os }}
234+
# strategy:
235+
# matrix:
236+
# os: [macos-latest, ubuntu-latest, windows-latest]
237+
# fail-fast: false
238+
# steps:
239+
# - uses: actions/checkout@v3
240+
# - name: Cache generated parser
241+
# uses: actions/cache@v3
242+
# with:
243+
# path: compiler/parser/python.rs
244+
# key: lalrpop-${{ hashFiles('compiler/parser/python.lalrpop') }}
245+
#
246+
# - uses: dtolnay/rust-toolchain@stable
247+
# - uses: actions/setup-python@v4
248+
# with:
249+
# python-version: "3.11"
250+
# - name: Set up the Windows environment
251+
# shell: bash
252+
# run: |
253+
# choco install llvm openssl
254+
# echo "OPENSSL_DIR=C:\Program Files\OpenSSL-Win64" >>$GITHUB_ENV
255+
# if: runner.os == 'Windows'
256+
# - name: Set up the Mac environment
257+
# run: brew install autoconf automake libtool openssl@3
258+
# if: runner.os == 'macOS'
259+
#
260+
# - uses: Swatinem/rust-cache@v2
261+
# - name: build rustpython
262+
# run: cargo build --release --verbose --features=threading ${{ env.CARGO_ARGS }}
263+
# - uses: actions/setup-python@v4
264+
# with:
265+
# python-version: "3.11"
266+
# - name: run snippets
267+
# run: python -m pip install -r requirements.txt && pytest -v
268+
# working-directory: ./extra_tests
269+
# - if: runner.os == 'Linux'
270+
# name: run cpython platform-independent tests
271+
# run:
272+
# target/release/rustpython -m test -j 1 -u all --slowest --fail-env-changed -v ${{ env.PLATFORM_INDEPENDENT_TESTS }}
273+
# - if: runner.os != 'Windows'
274+
# name: run cpython platform-dependent tests
275+
# run: target/release/rustpython -m test -j 1 -u all --slowest --fail-env-changed -v -x ${{ env.PLATFORM_INDEPENDENT_TESTS }}
276+
# - if: runner.os == 'Windows'
277+
# name: run cpython platform-dependent tests (windows partial - fixme)
278+
# run:
279+
# target/release/rustpython -m test -j 1 -u all --slowest --fail-env-changed -v -x ${{ env.PLATFORM_INDEPENDENT_TESTS }}
280+
# test_glob
281+
# test_importlib
282+
# test_io
283+
# test_iter
284+
# test_os
285+
# test_pathlib
286+
# test_posixpath
287+
# test_shutil
288+
# test_venv
289+
# - if: runner.os != 'Windows'
290+
# name: check that --install-pip succeeds
291+
# run: |
292+
# mkdir site-packages
293+
# target/release/rustpython --install-pip ensurepip --user
294+
# - if: runner.os != 'Windows'
295+
# name: Check that ensurepip succeeds.
296+
# run: |
297+
# target/release/rustpython -m ensurepip
298+
# target/release/rustpython -c "import pip"
299+
# - name: Check whats_left is not broken
300+
# run: python -I whats_left.py
314301

315302
lalrpop:
316303
if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }}
@@ -361,8 +348,8 @@ jobs:
361348
components: rustfmt, clippy
362349
- name: run rustfmt
363350
run: cargo fmt --all -- --check
364-
- name: run clippy on wasm
365-
run: cargo clippy --manifest-path=wasm/lib/Cargo.toml -- -Dwarnings
351+
# - name: run clippy on wasm
352+
# run: cargo clippy --manifest-path=wasm/lib/Cargo.toml -- -Dwarnings
366353
- uses: actions/setup-python@v4
367354
with:
368355
python-version: "3.11"
@@ -397,86 +384,84 @@ jobs:
397384

398385
- uses: Swatinem/rust-cache@v2
399386
- name: Run tests under miri
400-
# miri-ignore-leaks because the type-object circular reference means that there will always be
401-
# a memory leak, at least until we have proper cyclic gc
402-
run: MIRIFLAGS='-Zmiri-ignore-leaks' cargo +nightly miri test -p rustpython-vm -- miri_test
403-
404-
wasm:
405-
if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }}
406-
name: Check the WASM package and demo
407-
needs: lalrpop
408-
runs-on: ubuntu-latest
409-
steps:
410-
- uses: actions/checkout@v3
411-
- name: Cache generated parser
412-
uses: actions/cache@v3
413-
with:
414-
path: compiler/parser/python.rs
415-
key: lalrpop-${{ hashFiles('compiler/parser/python.lalrpop') }}
416-
- uses: dtolnay/rust-toolchain@stable
417-
418-
- uses: Swatinem/rust-cache@v2
419-
- name: install wasm-pack
420-
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
421-
- name: install geckodriver
422-
run: |
423-
wget https://github.com/mozilla/geckodriver/releases/download/v0.30.0/geckodriver-v0.30.0-linux64.tar.gz
424-
mkdir geckodriver
425-
tar -xzf geckodriver-v0.30.0-linux64.tar.gz -C geckodriver
426-
- uses: actions/setup-python@v4
427-
with:
428-
python-version: "3.11"
429-
- run: python -m pip install -r requirements.txt
430-
working-directory: ./wasm/tests
431-
- uses: actions/setup-node@v3
432-
- name: run test
433-
run: |
434-
export PATH=$PATH:`pwd`/../../geckodriver
435-
npm install
436-
npm run test
437-
env:
438-
NODE_OPTIONS: "--openssl-legacy-provider"
439-
working-directory: ./wasm/demo
440-
- name: build notebook demo
441-
if: github.ref == 'refs/heads/release'
442-
run: |
443-
npm install
444-
npm run dist
445-
mv dist ../demo/dist/notebook
446-
env:
447-
NODE_OPTIONS: "--openssl-legacy-provider"
448-
working-directory: ./wasm/notebook
449-
- name: Deploy demo to Github Pages
450-
if: success() && github.ref == 'refs/heads/release'
451-
uses: peaceiris/actions-gh-pages@v2
452-
env:
453-
ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEMO_DEPLOY_KEY }}
454-
PUBLISH_DIR: ./wasm/demo/dist
455-
EXTERNAL_REPOSITORY: RustPython/demo
456-
PUBLISH_BRANCH: master
457-
458-
wasm-wasi:
459-
if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }}
460-
name: Run snippets and cpython tests on wasm-wasi
461-
needs: lalrpop
462-
runs-on: ubuntu-latest
463-
steps:
464-
- uses: actions/checkout@v3
465-
- name: Cache generated parser
466-
uses: actions/cache@v3
467-
with:
468-
path: compiler/parser/python.rs
469-
key: lalrpop-${{ hashFiles('compiler/parser/python.lalrpop') }}
470-
- uses: dtolnay/rust-toolchain@stable
471-
with:
472-
target: wasm32-wasi
473-
474-
- uses: Swatinem/rust-cache@v2
475-
- name: Setup Wasmer
476-
uses: wasmerio/setup-wasmer@v2
477-
- name: Install clang
478-
run: sudo apt-get update && sudo apt-get install clang -y
479-
- name: build rustpython
480-
run: cargo build --release --target wasm32-wasi --features freeze-stdlib,stdlib --verbose
481-
- name: run snippets
482-
run: wasmer run --dir . target/wasm32-wasi/release/rustpython.wasm -- extra_tests/snippets/stdlib_random.py
387+
run: cargo +nightly miri test -p rustpython-parser -- miri_test
388+
389+
# wasm:
390+
# if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }}
391+
# name: Check the WASM package and demo
392+
# needs: lalrpop
393+
# runs-on: ubuntu-latest
394+
# steps:
395+
# - uses: actions/checkout@v3
396+
# - name: Cache generated parser
397+
# uses: actions/cache@v3
398+
# with:
399+
# path: compiler/parser/python.rs
400+
# key: lalrpop-${{ hashFiles('compiler/parser/python.lalrpop') }}
401+
# - uses: dtolnay/rust-toolchain@stable
402+
#
403+
# - uses: Swatinem/rust-cache@v2
404+
# - name: install wasm-pack
405+
# run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
406+
# - name: install geckodriver
407+
# run: |
408+
# wget https://github.com/mozilla/geckodriver/releases/download/v0.30.0/geckodriver-v0.30.0-linux64.tar.gz
409+
# mkdir geckodriver
410+
# tar -xzf geckodriver-v0.30.0-linux64.tar.gz -C geckodriver
411+
# - uses: actions/setup-python@v4
412+
# with:
413+
# python-version: "3.11"
414+
# - run: python -m pip install -r requirements.txt
415+
# working-directory: ./wasm/tests
416+
# - uses: actions/setup-node@v3
417+
# - name: run test
418+
# run: |
419+
# export PATH=$PATH:`pwd`/../../geckodriver
420+
# npm install
421+
# npm run test
422+
# env:
423+
# NODE_OPTIONS: "--openssl-legacy-provider"
424+
# working-directory: ./wasm/demo
425+
# - name: build notebook demo
426+
# if: github.ref == 'refs/heads/release'
427+
# run: |
428+
# npm install
429+
# npm run dist
430+
# mv dist ../demo/dist/notebook
431+
# env:
432+
# NODE_OPTIONS: "--openssl-legacy-provider"
433+
# working-directory: ./wasm/notebook
434+
# - name: Deploy demo to Github Pages
435+
# if: success() && github.ref == 'refs/heads/release'
436+
# uses: peaceiris/actions-gh-pages@v2
437+
# env:
438+
# ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEMO_DEPLOY_KEY }}
439+
# PUBLISH_DIR: ./wasm/demo/dist
440+
# EXTERNAL_REPOSITORY: RustPython/demo
441+
# PUBLISH_BRANCH: master
442+
#
443+
# wasm-wasi:
444+
# if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip:ci') }}
445+
# name: Run snippets and cpython tests on wasm-wasi
446+
# needs: lalrpop
447+
# runs-on: ubuntu-latest
448+
# steps:
449+
# - uses: actions/checkout@v3
450+
# - name: Cache generated parser
451+
# uses: actions/cache@v3
452+
# with:
453+
# path: compiler/parser/python.rs
454+
# key: lalrpop-${{ hashFiles('compiler/parser/python.lalrpop') }}
455+
# - uses: dtolnay/rust-toolchain@stable
456+
# with:
457+
# target: wasm32-wasi
458+
#
459+
# - uses: Swatinem/rust-cache@v2
460+
# - name: Setup Wasmer
461+
# uses: wasmerio/setup-wasmer@v2
462+
# - name: Install clang
463+
# run: sudo apt-get update && sudo apt-get install clang -y
464+
# - name: build rustpython
465+
# run: cargo build --release --target wasm32-wasi --features freeze-stdlib,stdlib --verbose
466+
# - name: run snippets
467+
# run: wasmer run --dir . target/wasm32-wasi/release/rustpython.wasm -- extra_tests/snippets/stdlib_random.py

0 commit comments

Comments
 (0)