Skip to content

Build webview with Jupyter for macos #1

Build webview with Jupyter for macos

Build webview with Jupyter for macos #1

name: Build webview with Jupyter for macos
on:
workflow_dispatch:
env:
branch_name: webview
jobs:
test_and_build:
runs-on: ${{ matrix.config.os }}
strategy:
matrix:
config:
#- { os: ubuntu-latest, py: 3.8, doc: 1 }
# - { os: windows-latest, py: "3.10", exe: 1, whl: 1 }
# - { os: macos-latest-xlarge, py: "3.10", whl: 1}
- { os: macos-latest, py: "3.10", whl: 1 }
# all using to stable abi
steps:
- uses: actions/checkout@v3
with:
ref: ${{ env.branch_name }}
- name: Set up Python ${{ matrix.config.py }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.config.py }}
- uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: ${{ matrix.config.py }}
- name: Build installer
run: |
./extra/build_conda_packed_jupyter.sh
mkdir unstable
pwd
mv refl1d-webview* ./unstable/
# See the following for how to upload to a release
# https://eugene-babichenko.github.io/blog/2020/05/09/github-actions-cross-platform-auto-releases/
- name: Archive artifacts
uses: actions/upload-artifact@v3
with:
name: artifacts
path: |
unstable/*
updateUnstable:
needs: test_and_build
runs-on: ubuntu-latest
steps:
- name: Retrieve all artifacts
uses: actions/download-artifact@v3
with:
name: artifacts
- name: show files
run: |
ls * -l
- name: Update release assets and text
uses: actions/github-script@v6
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const fs = require('fs');
const path = require('path');
const { owner, repo } = context.repo;
let sid_release = await github.rest.repos.getReleaseByTag({
owner,
repo,
tag: "sid"
});
await github.rest.repos.updateRelease({
owner,
repo,
release_id: sid_release.data.id,
body: "A persistent prerelease where build artifacts for the current tip will be deposited\n\n## Last updated: " + (new Date()).toDateString()
});
// delete existing release assets (if needed) and upload new ones:
const globber = await glob.create("*", {followSymbolicLinks: false});
const full_paths = await globber.glob();
const to_update = full_paths.map((f) => path.basename(f));
console.log({to_update});
// const to_update = ["refl1d-webview-jupyter-0.8.15-Darwin-arm64.tar.gz", "refl1d-webview-jupyter.pkg"];
for (let fn of to_update) {
let asset_id = (sid_release.data.assets.find((a) => (a.name == fn)) ?? {}).id;
if (asset_id) {
await github.rest.repos.deleteReleaseAsset({
owner,
repo,
asset_id
});
}
await github.rest.repos.uploadReleaseAsset({
owner,
repo,
release_id: sid_release.data.id,
name: fn,
data: await fs.readFileSync(fn)
});
}