Skip to content

Commit edfa5e2

Browse files
authored
Update workflow improvements (#7552)
* Improve update workflow * dedupe in ui-tests * read name from package.json
1 parent 0d49b45 commit edfa5e2

File tree

3 files changed

+35
-6
lines changed

3 files changed

+35
-6
lines changed

.github/workflows/upgrade-jupyterlab-dependencies.yml

+23-5
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ on:
1515
default: main
1616
required: false
1717
type: string
18+
target_repo:
19+
description: 'Target repository'
20+
required: false
21+
default: jupyter/notebook
22+
type: string
1823

1924
env:
2025
version_tag: 'latest'
@@ -68,13 +73,17 @@ jobs:
6873
echo "latest=${LATEST}" >> $GITHUB_ENV
6974
jlpm upgrade:lab:dependencies --set-version ${LATEST}
7075
if [[ ! -z "$(git status --porcelain package.json)" ]]; then
71-
jlpm install
76+
jlpm
77+
jlpm deduplicate
78+
79+
cd ui-tests
80+
jlpm
7281
jlpm deduplicate
7382
fi
7483
7584
- name: Create a PR
7685
env:
77-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
86+
GITHUB_TOKEN: ${{ secrets.PERSONAL_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
7887
run: |
7988
set -eux
8089
@@ -95,9 +104,18 @@ jobs:
95104
git commit . -m "Update to JupyterLab v${LATEST}"
96105
97106
git push --set-upstream origin "${BRANCH_NAME}"
98-
gh pr create \
99-
--base ${{ inputs.branch || 'main' }} \
100-
--title "Update to JupyterLab v${LATEST}" \
107+
108+
PR_ARGS=(
109+
--base "${{ inputs.branch || 'main' }}"
110+
--title "Update to JupyterLab v${LATEST}"
101111
--body "New JupyterLab release [v${LATEST}](https://github.com/jupyterlab/jupyterlab/releases/tag/v${LATEST}) is available. Please review the lock file carefully."
112+
)
113+
114+
# Add --repo flag only if target_repo is specified
115+
if [[ -n "${{ inputs.target_repo }}" ]]; then
116+
PR_ARGS+=(--repo "${{ inputs.target_repo }}")
117+
fi
118+
119+
gh pr create "${PR_ARGS[@]}"
102120
fi
103121
fi

buildutils/src/upgrade-lab-dependencies.ts

+11
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const PACKAGE_JSON_PATHS: string[] = [
1717
'packages/tree-extension/package.json',
1818
'packages/tree/package.json',
1919
'packages/ui-components/package.json',
20+
'ui-tests/package.json',
2021
];
2122

2223
const DEPENDENCY_GROUP = '@jupyterlab';
@@ -78,7 +79,16 @@ async function updatePackageJson(newVersion: string): Promise<void> {
7879
throw new Error(errorMessage);
7980
}
8081

82+
// fetch the new galata version
83+
const galataUrl = `https://raw.githubusercontent.com/jupyterlab/jupyterlab/v${newVersion}/galata/package.json`;
84+
const galataResponse = await fetch(galataUrl);
85+
if (!galataResponse.ok) {
86+
const errorMessage = `Failed to fetch galata/package.json from ${galataUrl}. HTTP status code: ${galataResponse.status}`;
87+
throw new Error(errorMessage);
88+
}
89+
8190
const newPackageJson = await response.json();
91+
const galataPackageJson = await galataResponse.json();
8292

8393
for (const packageJsonPath of PACKAGE_JSON_PATHS) {
8494
const filePath: string = path.resolve(packageJsonPath);
@@ -87,6 +97,7 @@ async function updatePackageJson(newVersion: string): Promise<void> {
8797
const newDependencies = {
8898
...newPackageJson.devDependencies,
8999
...newPackageJson.resolutions,
100+
[galataPackageJson.name]: galataPackageJson.version,
90101
};
91102

92103
updateDependencyVersion(existingPackageJson, newDependencies);

ui-tests/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
"license": "BSD-3-Clause",
77
"description": "Jupyter Notebook UI Tests",
88
"scripts": {
9+
"deduplicate": "jlpm dlx yarn-berry-deduplicate -s fewerHighest && jlpm install",
910
"rimraf": "rimraf",
1011
"start": "jupyter notebook --config test/jupyter_server_config.py",
11-
"start:detached": "yarn run start&",
1212
"test": "playwright test",
1313
"test:debug": "PWDEBUG=1 playwright test",
1414
"test:report": "http-server ./playwright-report -a localhost -o",

0 commit comments

Comments
 (0)