From 9016f79743cfb3a73e776cce54d8a2bb83122caa Mon Sep 17 00:00:00 2001 From: yacchin1205 <968739+yacchin1205@users.noreply.github.com> Date: Tue, 26 May 2026 06:07:47 +0900 Subject: [PATCH] Add remotes as R install prerequisite to BinderHub addon E2E notebooks --- ...343\202\252\343\203\263-repo2docker.ipynb" | 23 ++++----- ...343\203\263\350\277\275\345\212\240.ipynb" | 45 +++++++++++++++++- ...343\202\252\343\203\263-repo2docker.ipynb" | 27 ++++++++--- ...343\203\263\350\277\275\345\212\240.ipynb" | 47 ++++++++++++++++++- 4 files changed, 121 insertions(+), 21 deletions(-) diff --git "a/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-repo2docker.ipynb" "b/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-repo2docker.ipynb" index fd53aa0..9dedcaf 100644 --- "a/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-repo2docker.ipynb" +++ "b/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-repo2docker.ipynb" @@ -29,10 +29,10 @@ "binderhub_apt_package = 'sl'\n", "binderhub_conda_package = 'awscli'\n", "binderhub_pip_package = 'papermill'\n", - "binderhub_r_package = 'eegkit'\n", + "binderhub_r_packages = ['remotes', 'eegkit']\n", "\n", "binderhub_post_build_script = '''#!/bin/bash\n", - "date > ~/uptime'''\n", + "date \u003e ~/uptime'''\n", "binderhub_binder_files = ['apt.txt', 'environment.yml', 'install.R', 'postBuild']\n", "binderhub_launch_timeout = 30 * 60 * 1000 # 30 minutes\n", "binderhub_test_filename = 'grdm_test_file.txt'\n", @@ -449,9 +449,9 @@ "id": "40988528", "metadata": {}, "source": [ - "## 「R (CRAN)」の「+追加」をクリックし、パッケージを登録する\n", + "## 「R (CRAN)」の「+追加」をクリックし、各パッケージを登録する\n", "\n", - "パッケージ名がR (CRAN)に表示されること" + "登録したパッケージ名がR (CRAN)に表示されること" ] }, { @@ -462,13 +462,14 @@ "outputs": [], "source": [ "async def _step(page):\n", - " await page.locator('//div[@data-test-package-editor = \"rmran\"]//*[@data-test-package-add]').click()\n", - " field = page.locator('//input[@name = \"package_name\"]')\n", - " await expect(field).to_be_visible(timeout=transition_timeout)\n", - " await field.fill(binderhub_r_package)\n", - " await page.locator('//button[@data-test-package-item-confirm]').click()\n", - " await expect(page.locator(f'//div[@data-test-package-editor = \"rmran\"]//*[text() = \"{binderhub_r_package}\"]')).to_be_visible(timeout=transition_timeout)\n", - " await asyncio.sleep(transition_timeout / 1000)\n", + " for pkg in binderhub_r_packages:\n", + " await page.locator('//div[@data-test-package-editor = \"rmran\"]//*[@data-test-package-add]').click()\n", + " field = page.locator('//input[@name = \"package_name\"]')\n", + " await expect(field).to_be_visible(timeout=transition_timeout)\n", + " await field.fill(pkg)\n", + " await page.locator('//button[@data-test-package-item-confirm]').click()\n", + " await expect(page.locator(f'//div[@data-test-package-editor = \"rmran\"]//*[text() = \"{pkg}\"]')).to_be_visible(timeout=transition_timeout)\n", + " await asyncio.sleep(transition_timeout / 1000)\n", "\n", "await run_pw(_step)" ] diff --git "a/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-\343\202\242\343\203\211\343\202\252\343\203\263\350\277\275\345\212\240.ipynb" "b/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-\343\202\242\343\203\211\343\202\252\343\203\263\350\277\275\345\212\240.ipynb" index 1692556..75525c4 100644 --- "a/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-\343\202\242\343\203\211\343\202\252\343\203\263\350\277\275\345\212\240.ipynb" +++ "b/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-\343\202\242\343\203\211\343\202\252\343\203\263\350\277\275\345\212\240.ipynb" @@ -27,8 +27,11 @@ "\n", "project_name = None\n", "\n", + "binderhub_r_packages = ['remotes']\n", + "\n", "# Use Firefox for popup handling (Chromium has issues with popup events)\n", - "browser_type = 'firefox'\n" + "browser_type = 'firefox'\n", + "" ] }, { @@ -323,6 +326,46 @@ "await run_pw(_step)" ] }, + { + "cell_type": "markdown", + "metadata": { + "lc_cell_meme": { + "current": "ee6fe412-5896-11f1-9ade-faebbd0a01f1", + "next": "f310a6fa-5896-11f1-8aa8-faebbd0a01f1", + "previous": null + } + }, + "source": [ + "## 「R (CRAN)」の「+追加」をクリックし、各パッケージを登録する\n", + "\n", + "登録したパッケージ名がR (CRAN)に表示されること" + ] + }, + { + "cell_type": "code", + "metadata": { + "lc_cell_meme": { + "current": "f310a6fa-5896-11f1-8aa8-faebbd0a01f1", + "next": null, + "previous": "ee6fe412-5896-11f1-9ade-faebbd0a01f1" + } + }, + "source": [ + "async def _step(page):\n", + " for pkg in binderhub_r_packages:\n", + " await page.locator('//div[@data-test-package-editor = \"rmran\"]//*[@data-test-package-add]').click()\n", + " field = page.locator('//input[@name = \"package_name\"]')\n", + " await expect(field).to_be_visible(timeout=transition_timeout)\n", + " await field.fill(pkg)\n", + " await page.locator('//button[@data-test-package-item-confirm]').click()\n", + " await expect(page.locator(f'//div[@data-test-package-editor = \"rmran\"]//*[text() = \"{pkg}\"]')).to_be_visible(timeout=transition_timeout)\n", + " await asyncio.sleep(transition_timeout / 1000)\n", + "\n", + "await run_pw(_step)" + ], + "outputs": [], + "execution_count": null + }, { "cell_type": "markdown", "id": "f0fca2f9", diff --git "a/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-repo2docker.ipynb" "b/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-repo2docker.ipynb" index c0ef522..19824f7 100644 --- "a/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-repo2docker.ipynb" +++ "b/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-repo2docker.ipynb" @@ -31,13 +31,14 @@ "binderhub_apt_package = 'sl'\n", "binderhub_conda_package = 'awscli'\n", "binderhub_pip_package = 'papermill'\n", - "binderhub_r_package = 'eegkit'\n", + "binderhub_r_packages = ['remotes', 'eegkit']\n", "binderhub_post_build_script = '''#!/bin/bash\n", - "date > ~/uptime'''\n", + "date \u003e ~/uptime'''\n", "binderhub_binder_files = ['apt.txt', 'environment.yml', 'install.R', 'postBuild']\n", "binderhub_launch_timeout = 1800000 # 30 minutes\n", "binderhub_test_filename = 'grdm_test_file.txt'\n", - "binderhub_test_file_content = 'GRDM_FILE_SYNC_TEST'\n" + "binderhub_test_file_content = 'GRDM_FILE_SYNC_TEST'\n", + "" ] }, { @@ -324,9 +325,9 @@ "id": "40988528", "metadata": {}, "source": [ - "## 「R (MRAN)」の「+追加」をクリックし、パッケージを登録する\n", + "## 「R (MRAN)」の「+追加」をクリックし、各パッケージを登録する\n", "\n", - "パッケージ名がR (MRAN)に表示されること" + "登録したパッケージ名がR (MRAN)に表示されること" ] }, { @@ -335,7 +336,19 @@ "id": "84d1c03a", "metadata": {}, "outputs": [], - "source": "async def _step(page):\n await page.locator('//div[@data-test-package-editor = \"rmran\"]//*[@data-test-package-add]').click()\n field = page.locator('//input[@name = \"package_name\"]')\n await expect(field).to_be_visible(timeout=transition_timeout)\n await field.fill(binderhub_r_package)\n await page.locator('//button[@data-test-package-item-confirm]').click()\n await expect(page.locator(f'//div[@data-test-package-editor = \"rmran\"]//*[text() = \"{binderhub_r_package}\"]')).to_be_visible(timeout=transition_timeout)\n await asyncio.sleep(10)\n\nawait run_pw(_step)" + "source": [ + "async def _step(page):\n", + " for pkg in binderhub_r_packages:\n", + " await page.locator('//div[@data-test-package-editor = \"rmran\"]//*[@data-test-package-add]').click()\n", + " field = page.locator('//input[@name = \"package_name\"]')\n", + " await expect(field).to_be_visible(timeout=transition_timeout)\n", + " await field.fill(pkg)\n", + " await page.locator('//button[@data-test-package-item-confirm]').click()\n", + " await expect(page.locator(f'//div[@data-test-package-editor = \"rmran\"]//*[text() = \"{pkg}\"]')).to_be_visible(timeout=transition_timeout)\n", + " await asyncio.sleep(10)\n", + "\n", + "await run_pw(_step)" + ] }, { "cell_type": "markdown", @@ -952,4 +965,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +} diff --git "a/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-\343\202\242\343\203\211\343\202\252\343\203\263\350\277\275\345\212\240.ipynb" "b/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-\343\202\242\343\203\211\343\202\252\343\203\263\350\277\275\345\212\240.ipynb" index 5ef5559..311718c 100644 --- "a/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-\343\202\242\343\203\211\343\202\252\343\203\263\350\277\275\345\212\240.ipynb" +++ "b/\343\203\206\343\202\271\343\203\210\346\211\213\351\240\206-BinderHub\343\202\242\343\203\211\343\202\252\343\203\263-\343\202\242\343\203\211\343\202\252\343\203\263\350\277\275\345\212\240.ipynb" @@ -28,8 +28,11 @@ "\n", "project_name = None\n", "\n", + "binderhub_r_packages = ['remotes']\n", + "\n", "# Use Firefox for popup handling (Chromium has issues with popup events)\n", - "browser_type = 'firefox'\n" + "browser_type = 'firefox'\n", + "" ] }, { @@ -379,6 +382,46 @@ "await run_pw(_step)\n" ] }, + { + "cell_type": "markdown", + "metadata": { + "lc_cell_meme": { + "current": "aba49b44-5893-11f1-9a45-faebbd0a01f1", + "next": "afe69acc-5893-11f1-9313-faebbd0a01f1", + "previous": null + } + }, + "source": [ + "## 「R (MRAN)」の「+追加」をクリックし、各パッケージを登録する\n", + "\n", + "登録したパッケージ名がR (MRAN)に表示されること" + ] + }, + { + "cell_type": "code", + "metadata": { + "lc_cell_meme": { + "current": "afe69acc-5893-11f1-9313-faebbd0a01f1", + "next": null, + "previous": "aba49b44-5893-11f1-9a45-faebbd0a01f1" + } + }, + "source": [ + "async def _step(page):\n", + " for pkg in binderhub_r_packages:\n", + " await page.locator('//div[@data-test-package-editor = \"rmran\"]//*[@data-test-package-add]').click()\n", + " field = page.locator('//input[@name = \"package_name\"]')\n", + " await expect(field).to_be_visible(timeout=transition_timeout)\n", + " await field.fill(pkg)\n", + " await page.locator('//button[@data-test-package-item-confirm]').click()\n", + " await expect(page.locator(f'//div[@data-test-package-editor = \"rmran\"]//*[text() = \"{pkg}\"]')).to_be_visible(timeout=transition_timeout)\n", + " await asyncio.sleep(10)\n", + "\n", + "await run_pw(_step)" + ], + "outputs": [], + "execution_count": null + }, { "cell_type": "markdown", "id": "f0fca2f9", @@ -788,4 +831,4 @@ }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +}