diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 000000000..c05b5fe93
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1 @@
+/.github/ @thomass-dev @rouk1 @augustebaum
diff --git a/.github/actions/sphinx/deploy/action.yml b/.github/actions/sphinx/deploy/action.yml
index e6118ee0f..d3568bc66 100644
--- a/.github/actions/sphinx/deploy/action.yml
+++ b/.github/actions/sphinx/deploy/action.yml
@@ -14,8 +14,7 @@ inputs:
required: false
default: scaleway
BUCKET:
- required: false
- default: prod-probabl-skore
+ required: true
SOURCE:
required: true
DESTINATION:
diff --git a/.github/actions/workflow-run/context/action.yml b/.github/actions/workflow-run/context/action.yml
new file mode 100644
index 000000000..e2ba0263c
--- /dev/null
+++ b/.github/actions/workflow-run/context/action.yml
@@ -0,0 +1,38 @@
+name: acquire-pr-context
+description: |
+ Acquire the PR number and the PR commit HEAD sha, after a "workflow_run" event.
+
+ The "workflow_run" context differs from the "pull_request" context and doesn't contain
+ PR basic information. This action intends to provide some missing information in the
+ "workflow_run" context, without having to explicitly record them in the workflow that
+ triggered the "workflow_run" event.
+
+outputs:
+ pr-number:
+ description: "The PR number"
+ value: ${{ steps.acquire-pr-context.outputs.number }}
+ pr-head-sha:
+ description: "The PR commit HEAD sha"
+ value: ${{ steps.acquire-pr-context.outputs.head-sha }}
+
+runs:
+ using: composite
+ steps:
+ - id: acquire-pr-context
+ shell: bash
+ run: |-
+ gh pr view \
+ --repo "${REPOSITORY}" "${BRANCH}" \
+ --json 'number,headRefOid' \
+ --jq '"number=\(.number)\nhead-sha=\(.headRefOid)"' \
+ \
+ >> "${GITHUB_OUTPUT}"
+ env:
+ GH_TOKEN: ${{ github.token }}
+ REPOSITORY: ${{ github.repository }}
+ BRANCH: |-
+ ${{
+ (github.event.workflow_run.head_repository.fork == true)
+ && format('{0}:{1}', github.event.workflow_run.head_repository.owner.login, github.event.workflow_run.head_branch)
+ || github.event.workflow_run.head_branch
+ }}
diff --git a/.github/workflows/skore.yml b/.github/workflows/backend.yml
similarity index 57%
rename from .github/workflows/skore.yml
rename to .github/workflows/backend.yml
index 43b27f506..11360d694 100644
--- a/.github/workflows/skore.yml
+++ b/.github/workflows/backend.yml
@@ -1,13 +1,49 @@
-name: Reusable skore workflow
-
-on: [workflow_call]
+name: backend
+
+on:
+ pull_request:
+ paths:
+ - 'skore/src/**'
+ - 'skore/tests/**'
+ - 'skore/pyproject.toml'
+ - 'skore/requirements*.txt'
+ - '.github/workflows/backend.yml'
+ push:
+ branches:
+ - main
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+permissions:
+ contents: read
defaults:
run:
shell: "bash"
jobs:
- test-skore:
+ backend-lint:
+ runs-on: "ubuntu-latest"
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
+ cache: pip
+
+ - name: Install dependencies
+ run: python -m pip install --upgrade pip pre-commit
+
+ - name: Lint
+ working-directory: skore/
+ run: pre-commit run --all-files ruff
+
+ backend-test:
strategy:
fail-fast: false
matrix:
@@ -21,14 +57,20 @@ jobs:
- os: "ubuntu-latest"
python: "3.12"
scikit-learn: "1.5"
+ - os: "ubuntu-latest"
+ python: "3.12"
+ scikit-learn: "1.6"
+ coverage: true
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v4
+ - name: Checkout code
+ uses: actions/checkout@v4
- - uses: actions/setup-python@v5
+ - name: Setup Python
+ uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- cache: "pip"
+ cache: pip
- name: Restore python-venv
uses: actions/cache/restore@v4
@@ -75,46 +117,33 @@ jobs:
path: 'skore/venv'
key: ${{ steps.cache-python-venv.outputs.cache-primary-key }}
- - name: Lint and test
- timeout-minutes: 10
- working-directory: "skore/"
- run: |
- # Lint
- pre-commit run --all-files ruff
-
- # Build
- python -m build
+ - name: Build
+ working-directory: skore/
+ run: python -m build
+ - name: Install
+ working-directory: skore/
+ run: |
# Install `skore` without its dependencies, which are present in the venv
wheel=(dist/*.whl); python -m pip install --force-reinstall --no-deps "${wheel}"
- # Test
- python -m pytest --no-cov src/ tests/ -n auto
+ - name: Test without coverage
+ if: ${{ ! matrix.coverage }}
+ timeout-minutes: 10
+ working-directory: skore/
+ run: python -m pytest -n auto src/ tests/ --no-cov
- coverage-skore:
- runs-on: ubuntu-latest
- if: ${{ github.event_name == 'pull_request' }}
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-python@v5
- with:
- python-version: 3.12
- cache: "pip"
- - name: pytest coverage
- working-directory: "skore/"
+ - name: Test with coverage
+ if: ${{ matrix.coverage }}
+ timeout-minutes: 10
+ working-directory: skore/
run: |
- # Install dependencies
- python -m pip install --upgrade pip
- python -m pip install --upgrade pre-commit
- python -m pip install --upgrade build
- python -m pip install -e .[test]
-
- # run coverage
- python -m pytest -n auto --junitxml=coverage.xml --cov=skore src/ tests/ | tee pytest-coverage.txt
- - name: Pytest coverage comment
- if: ${{ ! github.event.pull_request.head.repo.fork }}
- uses: MishaKav/pytest-coverage-comment@main
+ mkdir coverage
+ python -m pytest -n auto src/ tests/ --junitxml=coverage/coverage.xml --cov-config=pyproject.toml --cov | tee coverage/coverage.txt
+
+ - name: Upload coverage reports
+ if: ${{ matrix.coverage && (github.event_name == 'pull_request') }}
+ uses: actions/upload-artifact@v4
with:
- pytest-coverage-path: ./skore/pytest-coverage.txt
- junitxml-path: ./skore/coverage.xml
- title: pytest coverage report
+ name: backend-coverage
+ path: skore/coverage/
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index e3db1d26d..000000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,69 +0,0 @@
-name: CI
-
-on:
- pull_request:
- push:
- branches:
- - main
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
-
-jobs:
- changes:
- runs-on: ubuntu-latest
- outputs:
- skore: ${{ steps.filter.outputs.skore }}
- skore-ui: ${{ steps.filter.outputs.skore-ui }}
- permissions:
- pull-requests: read
- steps:
- - uses: actions/checkout@v4
- - uses: dorny/paths-filter@v3
- id: filter
- with:
- filters: |
- skore:
- - 'skore/src/**'
- - 'skore/tests/**'
- - 'skore/pyproject.toml'
- - 'skore/requirements*.txt'
- - '.github/workflows/skore.yml'
- skore-ui:
- - 'skore-ui/**'
- - '.github/workflows/skore-ui.yml'
-
- lint-all-files:
- uses: ./.github/workflows/lint.yml
- permissions:
- contents: read
-
- lint-and-test-skore:
- needs: [lint-all-files, changes]
- if: ${{ (github.event_name == 'push' && github.ref == 'refs/heads/main') || (github.event_name == 'pull_request' && needs.changes.outputs.skore == 'true') }}
- uses: ./.github/workflows/skore.yml
- permissions:
- contents: read
- pull-requests: write
-
- lint-and-test-skore-ui:
- needs: [lint-all-files, changes]
- if: ${{ (github.event_name == 'push' && github.ref == 'refs/heads/main') || (github.event_name == 'pull_request' && needs.changes.outputs.skore-ui == 'true') }}
- uses: ./.github/workflows/skore-ui.yml
- permissions:
- contents: read
- pull-requests: write
-
- ci-all-green:
- needs:
- - changes
- - lint-all-files
- - lint-and-test-skore
- - lint-and-test-skore-ui
- if: ${{ always() }}
- runs-on: Ubuntu-latest
- steps:
- - shell: bash
- run: |
- [[ ${{ contains(needs.*.result, 'failure') }} = false ]]
diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml
new file mode 100644
index 000000000..641493bae
--- /dev/null
+++ b/.github/workflows/frontend.yml
@@ -0,0 +1,89 @@
+name: frontend
+
+on:
+ pull_request:
+ paths:
+ - 'skore-ui/**'
+ - '.github/workflows/frontend.yml'
+ push:
+ branches:
+ - main
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+permissions:
+ contents: read
+
+defaults:
+ run:
+ shell: "bash"
+
+jobs:
+ frontend-lint:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup Node
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+ cache: 'npm'
+ cache-dependency-path: skore-ui/package-lock.json
+
+ - name: Lint
+ working-directory: skore-ui/
+ run: |
+ npm install
+ npm run type-check
+ npm run lint
+ npm run format
+ npm run style-lint
+
+ frontend-test:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup Node
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+ cache: 'npm'
+ cache-dependency-path: skore-ui/package-lock.json
+
+ - name: Test with coverage
+ working-directory: skore-ui/
+ run: |
+ npm install
+ npm run test:unit:coverage
+
+ - name: Upload coverage reports
+ if: ${{ github.event_name == 'pull_request' }}
+ uses: actions/upload-artifact@v4
+ with:
+ name: frontend-coverage
+ path: skore-ui/coverage/
+
+ frontend-build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup Node
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+ cache: 'npm'
+ cache-dependency-path: skore-ui/package-lock.json
+
+ - name: Build
+ working-directory: skore-ui/
+ run: |
+ npm install
+ npm run build
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 886506ca7..9d76ffc11 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -1,21 +1,40 @@
-name: Reusable lint workflow
+name: lint
-on: [workflow_call]
+on:
+ pull_request:
+ push:
+ branches:
+ - main
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+permissions:
+ contents: read
+
+defaults:
+ run:
+ shell: "bash"
jobs:
- lint-all-files:
+ lint:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-python@v5
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup Python
+ uses: actions/setup-python@v5
with:
- python-version: '3.12'
- cache: 'pip'
- - name: Lint all files
- run: |
- python -m pip install --upgrade pip
- python -m pip install --upgrade pre-commit
+ python-version: "3.12"
+ cache: pip
+
+ - name: Install dependencies
+ run: python -m pip install --upgrade pip pre-commit
+ - name: Lint
+ run: |
pre-commit run --all-files check-yaml
pre-commit run --all-files check-toml
pre-commit run --all-files check-added-large-files
diff --git a/.github/workflows/add-pr-assignee.yml b/.github/workflows/pr-add-assignee.yml
similarity index 90%
rename from .github/workflows/add-pr-assignee.yml
rename to .github/workflows/pr-add-assignee.yml
index c6570c0aa..f5a673e1c 100644
--- a/.github/workflows/add-pr-assignee.yml
+++ b/.github/workflows/pr-add-assignee.yml
@@ -1,11 +1,13 @@
-name: Add PR assignee
+name: add assignee in PR
on:
- pull_request:
+ pull_request_target:
types: [opened]
+permissions: {}
+
jobs:
- add-pr-assignee:
+ add-assignee:
runs-on: ubuntu-latest
permissions:
pull-requests: write
diff --git a/.github/workflows/pr-cleanup.yml b/.github/workflows/pr-cleanup.yml
new file mode 100644
index 000000000..ff83a624d
--- /dev/null
+++ b/.github/workflows/pr-cleanup.yml
@@ -0,0 +1,79 @@
+name: cleanup PR
+
+on:
+ pull_request_target:
+ types: [closed]
+
+permissions: {}
+
+defaults:
+ run:
+ shell: "bash"
+
+jobs:
+ clean-artifacts:
+ if: always()
+ runs-on: ubuntu-latest
+ permissions:
+ actions: write
+ steps:
+ - name: Clean artifacts
+ run: |
+ set -u
+
+ ARTIFACTS=$( \
+ gh api \
+ --paginate \
+ -H "Accept: application/vnd.github+json" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ /repos/probabl-ai/skore/actions/artifacts \
+ | \
+ jq -c " \
+ .artifacts[] \
+ | select((.workflow_run.head_branch == \"${HEAD_BRANCH}\") and (.workflow_run.head_repository_id == ${HEAD_REPOSITORY_ID})) \
+ | {id: .id, name: .name} \
+ " \
+ )
+
+ for ARTIFACT in $ARTIFACTS; do
+ ID=$(echo "${ARTIFACT}" | jq -r '.id')
+ NAME=$(echo "${ARTIFACT}" | jq -r '.name')
+
+ echo "Deleting artifact (NAME: \"${NAME}\", ID: \"${ID}\")"
+
+ gh api \
+ --method DELETE \
+ --silent \
+ -H "Accept: application/vnd.github+json" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ /repos/${REPOSITORY_OWNER}/${REPOSITORY_NAME}/actions/artifacts/${ID}
+ done
+ env:
+ GH_TOKEN: ${{ github.token }}
+ REPOSITORY_OWNER: ${{ github.repository_owner }}
+ REPOSITORY_NAME: ${{ github.event.repository.name }}
+ HEAD_REPOSITORY_ID: ${{ github.event.pull_request.head.repo.id }}
+ HEAD_BRANCH: ${{ github.head_ref }}
+
+ clean-documentation-preview:
+ if: always()
+ runs-on: ubuntu-latest
+ steps:
+ - name: Install `rclone`
+ shell: bash
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y rclone
+
+ - name: Copy configuration
+ shell: bash
+ run: echo "${CONFIGURATION}" > rclone.configuration
+ env:
+ CONFIGURATION: ${{ secrets.RCLONE_CONFIG_DOC_PREVIEW }}
+
+ - name: Clean documentation preview
+ run: rclone --config rclone.configuration purge "${PROVIDER}:${BUCKET}/${PULL_REQUEST_NUMBER}"
+ env:
+ PROVIDER: scaleway
+ BUCKET: ${{ vars.DOCUMENTATION_PREVIEW_BUCKET }}
+ PULL_REQUEST_NUMBER: ${{ github.event.number }}
diff --git a/.github/workflows/pr-display-backend-coverage.yml b/.github/workflows/pr-display-backend-coverage.yml
new file mode 100644
index 000000000..de3ac1703
--- /dev/null
+++ b/.github/workflows/pr-display-backend-coverage.yml
@@ -0,0 +1,44 @@
+name: display backend coverage in PR
+
+on:
+ workflow_run:
+ workflows: [backend]
+ types: [completed]
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+permissions: {}
+
+jobs:
+ display-backend-coverage:
+ if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }}
+ runs-on: ubuntu-latest
+ permissions:
+ actions: read
+ contents: read
+ pull-requests: write
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Acquire PR context
+ id: acquire-pr-context
+ uses: ./.github/actions/workflow-run/context
+
+ - name: Download coverage reports
+ uses: actions/download-artifact@v4
+ with:
+ name: backend-coverage
+ path: coverage/
+ github-token: ${{ github.token }}
+ run-id: ${{ github.event.workflow_run.id }}
+
+ - name: Display coverage reports
+ uses: MishaKav/pytest-coverage-comment@main
+ with:
+ issue-number: ${{ steps.acquire-pr-context.outputs.pr-number }}
+ pytest-coverage-path: coverage/coverage.txt
+ junitxml-path: coverage/coverage.xml
+ title: Coverage Report for backend
diff --git a/.github/workflows/pr-display-frontend-coverage.yml b/.github/workflows/pr-display-frontend-coverage.yml
new file mode 100644
index 000000000..6dc1517cb
--- /dev/null
+++ b/.github/workflows/pr-display-frontend-coverage.yml
@@ -0,0 +1,42 @@
+name: display frontend coverage in PR
+
+on:
+ workflow_run:
+ workflows: [frontend]
+ types: [completed]
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+permissions: {}
+
+jobs:
+ display-frontend-coverage:
+ if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }}
+ runs-on: ubuntu-latest
+ permissions:
+ actions: read
+ contents: read
+ pull-requests: write
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Acquire PR context
+ id: acquire-pr-context
+ uses: ./.github/actions/workflow-run/context
+
+ - name: Download coverage reports
+ uses: actions/download-artifact@v4
+ with:
+ name: frontend-coverage
+ path: coverage/
+ github-token: ${{ github.token }}
+ run-id: ${{ github.event.workflow_run.id }}
+
+ - name: Display coverage reports
+ uses: davelosert/vitest-coverage-report-action@v2
+ with:
+ pr-number: ${{ steps.acquire-pr-context.outputs.pr-number }}
+ name: frontend
diff --git a/.github/workflows/lint-pr-title.yml b/.github/workflows/pr-lint-title.yml
similarity index 96%
rename from .github/workflows/lint-pr-title.yml
rename to .github/workflows/pr-lint-title.yml
index 0b1ea9944..d47f985d7 100644
--- a/.github/workflows/lint-pr-title.yml
+++ b/.github/workflows/pr-lint-title.yml
@@ -1,4 +1,4 @@
-name: Lint PR title
+name: lint title in PR
on:
pull_request:
@@ -8,7 +8,7 @@ permissions:
pull-requests: read
jobs:
- lint-pr-title:
+ lint-title:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v4
diff --git a/.github/workflows/pr-serve-documentation-preview.yml b/.github/workflows/pr-serve-documentation-preview.yml
new file mode 100644
index 000000000..7f1cbcb0e
--- /dev/null
+++ b/.github/workflows/pr-serve-documentation-preview.yml
@@ -0,0 +1,53 @@
+name: serve documentation preview in PR
+
+on:
+ workflow_run:
+ workflows: [sphinx]
+ types: [completed]
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+permissions: {}
+
+jobs:
+ serve-documentation-preview:
+ if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }}
+ runs-on: ubuntu-latest
+ permissions:
+ actions: read
+ contents: read
+ pull-requests: write
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Download HTML artifacts
+ uses: actions/download-artifact@v4
+ with:
+ name: sphinx-html-artifact
+ path: html/
+ github-token: ${{ github.token }}
+ run-id: ${{ github.event.workflow_run.id }}
+
+ - name: Acquire PR context
+ id: acquire-pr-context
+ uses: ./.github/actions/workflow-run/context
+
+ - name: Serve documentation preview
+ uses: ./.github/actions/sphinx/deploy
+ with:
+ CONFIGURATION: ${{ secrets.RCLONE_CONFIG_DOC_PREVIEW }}
+ BUCKET: ${{ vars.DOCUMENTATION_PREVIEW_BUCKET }}
+ SOURCE: html/
+ DESTINATION: ${{ steps.acquire-pr-context.outputs.pr-number }}/
+
+ - name: Comment with documentation preview link
+ uses: marocchino/sticky-pull-request-comment@v2
+ with:
+ number: ${{ steps.acquire-pr-context.outputs.pr-number }}
+ header: documentation-preview
+ message: >-
+ [Documentation preview](${{ vars.DOCUMENTATION_PREVIEW_URL }}/${{ steps.acquire-pr-context.outputs.pr-number }})
+ @ ${{ steps.acquire-pr-context.outputs.pr-head-sha }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index f1f44d21f..768356c21 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,4 +1,4 @@
-name: Release
+name: release
on:
release:
diff --git a/.github/workflows/skore-ui.yml b/.github/workflows/skore-ui.yml
deleted file mode 100644
index 0fbdd686d..000000000
--- a/.github/workflows/skore-ui.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-name: Reusable skore-ui workflow
-
-on: [workflow_call]
-
-defaults:
- run:
- shell: 'bash'
- working-directory: './skore-ui'
-
-jobs:
- lint-skore-ui:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with:
- node-version: '20'
- cache: 'npm'
- cache-dependency-path: skore-ui/package-lock.json
- - name: Lint skore-ui
- run: |
- npm install
- npm run type-check
- npm run lint
- npm run format
- npm run style-lint
-
- test-skore-ui:
- runs-on: ubuntu-latest
- needs: lint-skore-ui
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with:
- node-version: '20'
- cache: 'npm'
- cache-dependency-path: skore-ui/package-lock.json
- - name: Test skore-ui
- run: |
- npm install
- npm run test:unit:coverage
- - name: Report coverage
- if: ${{ always() && ! github.event.pull_request.head.repo.fork }}
- uses: davelosert/vitest-coverage-report-action@v2
- with:
- working-directory: ./skore-ui
- pr-number: ${{ github.event.number }}
-
- build-skore-ui:
- runs-on: ubuntu-latest
- needs: test-skore-ui
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with:
- node-version: '20'
- cache: 'npm'
- cache-dependency-path: skore-ui/package-lock.json
- - name: Build skore-ui
- run: |
- npm install
- npm run build
diff --git a/.github/workflows/sphinx.yml b/.github/workflows/sphinx.yml
index 9b4be3374..a91976798 100644
--- a/.github/workflows/sphinx.yml
+++ b/.github/workflows/sphinx.yml
@@ -1,4 +1,4 @@
-name: Sphinx
+name: sphinx
# **How it works**
@@ -116,8 +116,8 @@ jobs:
path: sphinx/build/html/
sphinx-deploy-html:
- runs-on: ubuntu-latest
if: ${{ (github.event_name == 'release') || (github.event_name == 'push' && github.ref == 'refs/heads/main') }}
+ runs-on: ubuntu-latest
needs: [sphinx-version, sphinx-build]
steps:
- uses: actions/checkout@v4
@@ -128,12 +128,13 @@ jobs:
- uses: ./.github/actions/sphinx/deploy
with:
CONFIGURATION: ${{ secrets.RCLONE_CONFIG_DOCS }}
+ BUCKET: ${{ vars.DOCUMENTATION_BUCKET }}
SOURCE: html/
DESTINATION: ${{ needs.sphinx-version.outputs.SPHINX_VERSION }}/
sphinx-deploy-root-files:
- runs-on: ubuntu-latest
if: ${{ github.event_name == 'release' }}
+ runs-on: ubuntu-latest
needs: [sphinx-version, sphinx-build, sphinx-deploy-html]
steps:
- uses: actions/checkout@v4
@@ -144,7 +145,7 @@ jobs:
import operator
import json
- url = "https://skore.probabl.ai"
+ url = os.environ["URL"]
current = os.environ["CURRENT"]
response = requests.get(f"{url}/versions.json")
@@ -177,17 +178,19 @@ jobs:
"""
)
env:
+ URL: ${{ vars.DOCUMENTATION_URL }}
CURRENT: ${{ needs.sphinx-version.outputs.SPHINX_VERSION }}
- uses: ./.github/actions/sphinx/deploy
with:
CONFIGURATION: ${{ secrets.RCLONE_CONFIG_DOCS }}
+ BUCKET: ${{ vars.DOCUMENTATION_BUCKET }}
ACTION: copy
SOURCE: artifacts/
DESTINATION:
- sphinx-clean:
+ sphinx-clean-artifacts:
runs-on: ubuntu-latest
- if: always()
+ if: ${{ always() && (github.event_name != 'pull_request') }}
needs: [sphinx-version, sphinx-build, sphinx-deploy-html, sphinx-deploy-root-files]
steps:
- uses: geekyeggo/delete-artifact@v5
diff --git a/README.md b/README.md
index 9405f2609..a9ac43b91 100644
--- a/README.md
+++ b/README.md
@@ -103,13 +103,15 @@ Thank you for considering contributing to skore! Join our mission to promote ope
+