jolin-io / JolinPlutoCICD.jl

Helpers for running Pluto Notebooks as part of continuous integration / deployment.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JolinPlutoCICD

Build Status Coverage

Helpers for running Pluto files within CICD processes.

Building docker

See JolinWorkspace/cicd for building the docker.

Dev

docker run -it --rm jolincompany/jolin_cloud_cicd:latest bash
julia -e '
    import Pkg
    Pkg.Registry.add("General")
    Pkg.Registry.add(Pkg.RegistrySpec(url="https://github.com/jolin-io/JolinRegistry.jl"))
    Pkg.add("JolinPlutoCICD")
'
git clone https://github.com/jolin-io/JolinWorkspaceTemplate
cd JolinWorkspaceTemplate

Use JolinPlutoCICD.jl in cicd

matrix strategy https://brunoscheufler.com/blog/2021-10-09-generating-dynamic-github-actions-workflows-with-the-job-matrix-strategy

json to bash array taken from https://stackoverflow.com/a/74604720

ALLWORKFLOWS=($(julia -e 'using JolinPlutoCICD; print(JolinPlutoCICD.get_all_workflow_paths(ARGS[1]))' . | sed -e 's/\[//g' -e 's/\]//g' -e 's/"//g' -e 's/\,/ /g'))
echo ${ALLWORKFLOWS[@]}
MYWORKFLOW=${ALLWORKFLOWS[0]}
echo $MYWORKFLOW
MYENV=$(julia -e 'using JolinPlutoCICD; print(JolinPlutoCICD.create_pluto_env(ARGS[1]))' $MYWORKFLOW)
echo $MYENV
julia --project=$MYENV -e 'import Pkg; Pkg.instantiate()'
julia --project=$MYENV $MYWORKFLOW

julia --project=$WORKFLOWENV --compile=min $WORKFLOWPATH

git clone https://github.com/jolin-io/JolinWorkspaceTemplate cd JolinWorkspaceTemplate

julia -e ' import Pkg Pkg.Registry.add("General") Pkg.Registry.add(Pkg.RegistrySpec(url="https://github.com/jolin-io/JolinRegistry.jl")) Pkg.add("JolinPlutoCICD") '

export WORKFLOWPATH=/root/JolinWorkspaceTemplate/workflows export WORKFLOWENV=$(julia -e 'using JolinPlutoCICD; print(JolinPlutoCICD.create_pluto_env(ARGS[1]))' $WORKFLOWPATH) echo $WORKFLOWENV julia --project=$WORKFLOWENV -e 'import Pkg; Pkg.instantiate()' cd $WORKFLOWENV julia --project=$WORKFLOWENV $WORKFLOWPATH

About

Helpers for running Pluto Notebooks as part of continuous integration / deployment.

License:MIT License


Languages

Language:Julia 100.0%