-
Notifications
You must be signed in to change notification settings - Fork 3
134 lines (120 loc) · 4.13 KB
/
Copy pathFullPerformance.yml
File metadata and controls
134 lines (120 loc) · 4.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
name: Full downstream performance
on:
workflow_dispatch:
inputs:
xpalm_ref:
description: XPalm branch, tag, or commit
required: true
default: main
type: string
plantbiophysics_ref:
description: PlantBiophysics branch, tag, or commit
required: true
default: master
type: string
plantgeom_ref:
description: PlantGeom branch, tag, or commit
required: true
default: main
type: string
workflow_call:
inputs:
xpalm_ref:
description: XPalm branch, tag, or commit
required: false
default: main
type: string
plantbiophysics_ref:
description: PlantBiophysics branch, tag, or commit
required: false
default: master
type: string
plantgeom_ref:
description: PlantGeom branch, tag, or commit
required: false
default: main
type: string
permissions:
contents: read
concurrency:
group: full-downstream-performance-${{ github.ref }}
cancel-in-progress: false
jobs:
full-downstream-performance:
name: PlantBiophysics and XPalm
runs-on: ubuntu-24.04
timeout-minutes: 45
env:
JULIA_NUM_THREADS: "1"
JULIA_PKG_PRECOMPILE_AUTO: "0"
PSE_BENCHMARK_INCLUDE_DOWNSTREAM: "true"
PSE_PLANTBIOPHYSICS_BENCHMARK_STEPS: "8760"
PSE_PLANTBIOPHYSICS_BENCHMARK_SAMPLES: "10"
PSE_PLANTBIOPHYSICS_FANOUT_SCENES: "100"
steps:
- name: Check out PlantSimEngine
uses: actions/checkout@v7
with:
ref: ${{ github.event.pull_request.head.sha || github.ref }}
- name: Check out XPalm
uses: actions/checkout@v7
with:
repository: PalmStudio/XPalm.jl
ref: ${{ inputs.xpalm_ref || 'main' }}
path: downstream/XPalm
- name: Check out PlantBiophysics
uses: actions/checkout@v7
with:
repository: VEZY/PlantBiophysics.jl
ref: ${{ inputs.plantbiophysics_ref || 'master' }}
path: downstream/PlantBiophysics
- name: Check out PlantGeom
uses: actions/checkout@v7
with:
repository: VEZY/PlantGeom.jl
ref: ${{ inputs.plantgeom_ref || 'main' }}
path: downstream/PlantGeom
- name: Set up Julia
uses: julia-actions/setup-julia@v3
with:
version: "1.12.1"
- name: Cache Julia packages
uses: julia-actions/cache@v3
- name: Resolve and instantiate the benchmark environment
shell: julia --project=benchmark --color=yes {0}
run: |
using Pkg
benchmark_project = joinpath(pwd(), "benchmark", "Project.toml")
include(joinpath(pwd(), "benchmark", "prepare_full_performance_project.jl"))
prepare_full_performance_project!(benchmark_project)
Pkg.activate(joinpath(pwd(), "benchmark"))
Pkg.develop([
PackageSpec(path=pwd()),
PackageSpec(path=joinpath(pwd(), "downstream", "XPalm")),
PackageSpec(path=joinpath(pwd(), "downstream", "PlantBiophysics")),
PackageSpec(path=joinpath(pwd(), "downstream", "PlantGeom")),
])
Pkg.resolve()
Pkg.instantiate()
Pkg.precompile()
- name: Run the PlantBiophysics API and performance benchmark
run: >-
julia --project=benchmark --color=yes
benchmark/test/runtests.jl
"PlantBiophysics benchmark (API smoke|performance)"
- name: Run the complete XPalm performance and correctness matrix
run: >-
julia --project=benchmark --color=yes
benchmark/test/runtests.jl
"XPalm staged performance profile full"
- name: Persist measurements and the resolved environment
if: always()
uses: actions/upload-artifact@v7
with:
name: downstream-full-performance-${{ github.run_id }}-${{ github.run_attempt }}
path: |
benchmark/results/plantbiophysics-full-latest.csv
benchmark/results/xpalm-full-latest.csv
benchmark/Manifest.toml
if-no-files-found: warn
retention-days: 90