-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1a6eae6
commit b222c6e
Showing
7 changed files
with
498 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
name: Binder Badge | ||
on: | ||
pull_request_target: | ||
types: [opened] | ||
|
||
jobs: | ||
binder: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
pull-requests: write | ||
steps: | ||
- uses: jupyterlab/maintainer-tools/.github/actions/binder-link@v1 | ||
with: | ||
github_token: ${{ secrets.github_token }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,259 @@ | ||
name: Build | ||
|
||
on: | ||
push: | ||
branches: main | ||
pull_request: | ||
branches: '*' | ||
|
||
jobs: | ||
build: | ||
name: Build jupytercad | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Install Conda environment with Micromamba | ||
uses: mamba-org/setup-micromamba@v1 | ||
with: | ||
environment-name: cad | ||
create-args: >- | ||
python=3.9 | ||
jupyterlab=4 | ||
yarn=3 | ||
- name: Setup pip cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: ~/.cache/pip | ||
key: pip-3.9-${{ hashFiles('package.json') }} | ||
restore-keys: | | ||
pip-3.9- | ||
pip- | ||
- name: Get yarn cache directory path | ||
id: yarn-cache-dir-path | ||
run: echo "::set-output name=dir::$(yarn cache dir)" | ||
|
||
- name: Setup yarn cache | ||
uses: actions/cache@v2 | ||
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | ||
with: | ||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | ||
key: yarn-${{ hashFiles('yarn.lock') }} | ||
restore-keys: | | ||
yarn- | ||
- name: Setup OpenCascade build cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
packages/opencascade/lib/jupytercad.opencascade.js | ||
packages/opencascade/lib/jupytercad.opencascade.wasm | ||
packages/opencascade/lib/jupytercad.opencascade.d.ts | ||
packages/opencascade/lib/jupytercad.opencascade.version | ||
key: ${{ hashFiles('packages/opencascade/build.yml') }} | ||
|
||
- name: Build the extension | ||
shell: bash -l {0} | ||
run: | | ||
set -eux | ||
yarn install | ||
yarn dev | ||
jupyter labextension list 2>&1 | grep -ie "jupytercad-core.*OK" | ||
jupyter labextension list 2>&1 | grep -ie "jupytercad-lab.*OK" | ||
- name: Test import | ||
shell: bash -l {0} | ||
run: python -c "import jupytercad_app" | ||
|
||
- name: Package the extension | ||
shell: bash -l {0} | ||
run: | | ||
set -eux | ||
pip install hatch | ||
yarn build:packages | ||
- name: Upload extension packages | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: extension-artifacts | ||
path: | | ||
python/jupytercad_core/dist/jupytercad* | ||
python/jupytercad_lab/dist/jupytercad* | ||
python/jupytercad_app/dist/jupytercad* | ||
if-no-files-found: error | ||
|
||
test_isolated: | ||
needs: build | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Install Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.9' | ||
architecture: 'x64' | ||
|
||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: extension-artifacts | ||
|
||
- name: Install and Test | ||
# TODO Update JupyterLab version | ||
run: | | ||
set -eux | ||
# Remove NodeJS, twice to take care of system and locally installed node versions. | ||
sudo rm -rf $(which node) | ||
sudo rm -rf $(which node) | ||
cp ./jupytercad_core/dist/jupytercad*.whl ./jupytercad_lab/dist/jupytercad*.whl ./jupytercad_app/dist/jupytercad*.whl . | ||
python -m pip install "jupyterlab>=4.0.0" jupytercad*.whl | ||
jupyter labextension list | ||
jupyter labextension list 2>&1 | grep -ie "jupytercad.*OK" | ||
jupyter cad --version | ||
# jupyterlab.browser_check will fail due to the core extension jupyterlab_pygments. | ||
# It does not support lab v4.0.0 | ||
#python -m jupyterlab.browser_check --no-chrome-test | ||
integration-tests: | ||
name: Integration tests | ||
needs: build | ||
runs-on: ubuntu-latest | ||
|
||
env: | ||
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/pw-browsers | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Install Conda environment with Micromamba | ||
uses: mamba-org/setup-micromamba@v1 | ||
with: | ||
micromamba-version: '1.5.5-0' | ||
environment-name: cad | ||
create-args: >- | ||
python=3.9 | ||
jupyterlab | ||
pythonocc-core=7.7.0 | ||
- name: Download extension package | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: extension-artifacts | ||
|
||
- name: Install the extension | ||
shell: bash -l {0} | ||
run: | | ||
set -eux | ||
cp ./jupytercad_core/dist/jupytercad*.whl ./jupytercad_lab/dist/jupytercad*.whl ./jupytercad_app/dist/jupytercad*.whl . | ||
python -m pip install jupytercad*.whl | ||
- name: Install dependencies | ||
shell: bash -l {0} | ||
working-directory: ui-tests | ||
env: | ||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 | ||
run: jlpm install | ||
|
||
- name: Set up browser cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
${{ github.workspace }}/pw-browsers | ||
key: ${{ runner.os }}-${{ hashFiles('ui-tests/yarn.lock') }} | ||
|
||
- name: Install browser | ||
shell: bash -l {0} | ||
run: npx playwright install chromium | ||
working-directory: ui-tests | ||
|
||
- name: Execute integration tests | ||
shell: bash -l {0} | ||
working-directory: ui-tests | ||
run: | | ||
npx playwright test | ||
- name: Upload Playwright Test report | ||
if: always() | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: jupytercad-playwright-tests | ||
path: | | ||
ui-tests/test-results | ||
ui-tests/playwright-report | ||
check_links: | ||
name: Check Links | ||
runs-on: ubuntu-latest | ||
timeout-minutes: 15 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | ||
- uses: jupyterlab/maintainer-tools/.github/actions/check-links@v1 | ||
|
||
build-lite: | ||
name: Build JupyterLite | ||
needs: integration-tests | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Install Conda environment with Micromamba | ||
uses: mamba-org/setup-micromamba@v1 | ||
with: | ||
micromamba-version: '1.5.5-0' | ||
environment-name: build-env | ||
create-args: >- | ||
python=3.10 | ||
pip | ||
jupyterlite-core>=0.2.0,<0.3.0 | ||
jupyterlite-xeus>=0.1.2,<0.2 | ||
- name: Download extension package | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: extension-artifacts | ||
|
||
- name: Install the extension | ||
shell: bash -l {0} | ||
run: | | ||
set -eux | ||
cp ./jupytercad_core/dist/jupytercad*.whl ./jupytercad_lab/dist/jupytercad*.whl ./jupytercad_app/dist/jupytercad*.whl . | ||
python -m pip install jupytercad*.whl | ||
- name: Build the lite site | ||
shell: bash -l {0} | ||
working-directory: lite | ||
run: | | ||
set -eux | ||
mkdir -p content && cp ../examples/test.jcad ./content | ||
jupyter lite build --contents content --output-dir dist | ||
- name: Upload artifact | ||
uses: actions/upload-pages-artifact@v1 | ||
with: | ||
path: ./lite/dist | ||
|
||
deploy: | ||
needs: build-lite | ||
if: github.ref == 'refs/heads/main' | ||
permissions: | ||
pages: write | ||
id-token: write | ||
|
||
environment: | ||
name: github-pages | ||
url: ${{ steps.deployment.outputs.page_url }} | ||
|
||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Deploy to GitHub Pages | ||
id: deployment | ||
uses: actions/deploy-pages@v1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
name: Check Release | ||
on: | ||
push: | ||
branches: ['main'] | ||
pull_request: | ||
branches: ['*'] | ||
|
||
jobs: | ||
check_release: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Install Conda environment with Micromamba | ||
uses: mamba-org/setup-micromamba@v1 | ||
with: | ||
environment-name: cad | ||
create-args: >- | ||
python=3.9 | ||
jupyterlab=4 | ||
yarn=3 | ||
pip | ||
jupyter-releaser | ||
- name: Check Release | ||
uses: jupyter-server/jupyter_releaser/.github/actions/check-release@v2 | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
version_spec: next | ||
shell: bash -l {0} | ||
|
||
- name: Upload Distributions | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: jupytercad-releaser-dist-${{ github.run_number }} | ||
path: .jupyter_releaser_checkout/dist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
name: Enforce PR label | ||
|
||
on: | ||
pull_request: | ||
types: [labeled, unlabeled, opened, edited, synchronize] | ||
jobs: | ||
enforce-label: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: enforce-triage-label | ||
uses: jupyterlab/maintainer-tools/.github/actions/enforce-label@v1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
name: 'Step 1: Prep Release' | ||
on: | ||
workflow_dispatch: | ||
inputs: | ||
version_spec: | ||
description: 'New Version Specifier' | ||
default: 'next' | ||
required: false | ||
branch: | ||
description: 'The branch to target' | ||
required: false | ||
post_version_spec: | ||
description: 'Post Version Specifier' | ||
required: false | ||
since: | ||
description: 'Use PRs with activity since this date or git reference' | ||
required: false | ||
since_last_stable: | ||
description: 'Use PRs with activity since the last stable git tag' | ||
required: false | ||
type: boolean | ||
jobs: | ||
prep_release: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | ||
|
||
- name: Prep Release | ||
id: prep-release | ||
uses: jupyter-server/jupyter_releaser/.github/actions/prep-release@v2 | ||
with: | ||
token: ${{ secrets.ADMIN_GITHUB_TOKEN }} | ||
version_spec: ${{ github.event.inputs.version_spec }} | ||
post_version_spec: ${{ github.event.inputs.post_version_spec }} | ||
target: ${{ github.event.inputs.target }} | ||
branch: ${{ github.event.inputs.branch }} | ||
since: ${{ github.event.inputs.since }} | ||
since_last_stable: ${{ github.event.inputs.since_last_stable }} | ||
|
||
- name: '** Next Step **' | ||
run: | | ||
echo "Optional): Review Draft Release: ${{ steps.prep-release.outputs.release_url }}" |
Oops, something went wrong.