Skip to content

Commit

Permalink
pluto implementation for CI (#245)
Browse files Browse the repository at this point in the history
* pluto implementation for CI

* fixes for documentation building

* fix make.jl

* fixes for Example.yml
  • Loading branch information
0815Creeper authored Sep 11, 2024
1 parent b01f18f commit b2cbaa5
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 7 deletions.
56 changes: 51 additions & 5 deletions .github/workflows/Example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
- main
paths:
- 'src/**'
- 'examples/src/**'
- 'examples/**'
- '.github/workflows/Example.yml'
- 'Project.toml'

Expand Down Expand Up @@ -52,7 +52,7 @@ jobs:
run: julia --project=examples/ examples/src/${{ matrix.file-name }}.jl

- name: "auto-commit (retry on merge)"
if: success() && github.event_name != 'pull_request' && github.branch == 'main'
if: success() && github.event_name != 'pull_request' && github.ref_name == 'main'
uses: nick-fields/retry@v3
env:
CI_COMMIT_MESSAGE: example-${{ matrix.os }}-${{ matrix.file-name }}-${{ matrix.julia-version }}-${{ matrix.julia-arch }}-${{ matrix.experimental }}[${{ github.ref }}]
Expand Down Expand Up @@ -81,10 +81,56 @@ jobs:
git add ${{ env.EXAMPLES_PATH }}
git commit -m "${{ env.CI_COMMIT_MESSAGE }}"
git push origin examples || (git reset --soft HEAD~1 && (exit 1))
pluto:
runs-on: ubuntu-latest
steps:
- name: "Check out repository"
uses: actions/checkout@v3

- name: "Set up Julia"
uses: julia-actions/setup-julia@v1
with:
version: '1.10'

- run: julia -e 'using Pkg; Pkg.add("PlutoSliderServer"); Pkg.add("FMI")'
- run: julia -e 'using PlutoSliderServer; PlutoSliderServer.export_directory("examples/pluto-src")'

- name: "auto-commit (retry on merge)"
if: success() && github.event_name != 'pull_request' && github.ref_name == 'main'
uses: nick-fields/retry@v3
env:
CI_COMMIT_MESSAGE: examples-pluto[${{ github.ref }}]
CI_COMMIT_AUTHOR: github-actions[bot]
EXAMPLES_PATH: examples
# Fetch all and clear the stash list. Include all files from the examples folder to the stash and switch the branch.
# Reset the branch and remove all current files in the examples folder.
# Checkout the last stash to restore the new notebooks and apply the stash index to restore all other new files in the folder.
with:
timeout_minutes: 999
max_attempts: 10
warning_on_retry: false
shell: bash
command: |
git fetch --all
git stash clear
git stash --include-untracked -- ${{ env.EXAMPLES_PATH }}
git switch examples
git reset --hard origin/examples
git checkout stash -f -- ${{ env.EXAMPLES_PATH }}
git stash apply --index
git stash drop
git config --global user.name "${{ env.CI_COMMIT_AUTHOR }}"
git config --global user.email "${{ env.CI_COMMIT_AUTHOR }}@users.noreply.github.com"
git config --global core.autocrlf false
git pull
git add ${{ env.EXAMPLES_PATH }}
git commit -m "${{ env.CI_COMMIT_MESSAGE }}"
git push origin examples || (git reset --soft HEAD~1 && (exit 1))
call-docu:
needs: jupyter
if: github.event_name != 'pull_request' && github.branch == 'main'
needs: [jupyter, pluto]
if: github.event_name != 'pull_request' && github.ref_name == 'main'
runs-on: ubuntu-latest
steps:
# Trigger an repoisitory dispath event
Expand Down
1 change: 1 addition & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
FMIBase = "900ee838-d029-460e-b485-d98a826ceef2"
FMICore = "8af89139-c281-408e-bce2-3005eb87462f"
FMIImport = "9fcbc62e-52a0-44e9-a616-1359a0008194"
JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
Expand Down
2 changes: 1 addition & 1 deletion docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ example_pages = [
"Manipulation" => "examples/manipulation.md",
"Multithreading" => "examples/multithreading.md",
"Multiprocessing" => "examples/multiprocessing.md",
"Pluto Workshops" => "examples/workshops.md",
]

makedocs(
Expand Down Expand Up @@ -54,7 +55,6 @@ makedocs(
],
],
"FMI3 specific content"=>Any[
"fmi3_lowlevel_library_types.md",
"fmi3_lowlevel_library_constants.md",
"FMI3 Functions in FMI Import/Core .jl"=>Any[
"fmi3_lowlevel_modeldescription_functions.md",
Expand Down
7 changes: 6 additions & 1 deletion docs/src/examples/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
This section discusses the included examples of the FMI.jl library.
If you require further information about the function calls, see the function sections of the [library](https://thummeto.github.io/FMI.jl/dev/library/).

Examples are subdevided into *Basics*, *Advanced* and *Publication appendices*.
Examples are subdevided into *Basics*, *Advanced*, *Pluto workshops* and *Publication appendices*.


**Basic examples:**
Expand All @@ -22,6 +22,11 @@ Examples are subdevided into *Basics*, *Advanced* and *Publication appendices*.
- [__Multiprocessing__](https://thummeto.github.io/FMI.jl/dev/examples/multiprocessing/): Shows how to use multiprocessing to simulate multiple FMUs.


**Pluto workshops:**

- [__Pluto workshops__](https://thummeto.github.io/FMI.jl/dev/examples/workshops/): [Pluto](https://plutojl.org/) based notebooks, that can easyly be executed on your own Pluto-Setup.


**Publication appendices:**

- [__Modelica conference 2021__](https://thummeto.github.io/FMI.jl/dev/examples/modelica_conference_2021/): Showing the different variants of simulating an FMU.
4 changes: 4 additions & 0 deletions docs/src/examples/workshops.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[Pluto](https://plutojl.org/) based notebooks, that can easyly be executed on your own Pluto-Setup.
```@raw html
<iframe src="../pluto-src/index.html" style="height:500px;width:100%;"></iframe>
```

0 comments on commit b2cbaa5

Please sign in to comment.