-
Notifications
You must be signed in to change notification settings - Fork 2
78 lines (76 loc) · 2.88 KB
/
reusable-generate-mermaid-svg.yaml
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
#########################################################################################
# Copyright (c) 2023 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License, Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# SPDX-License-Identifier: Apache-2.0
#########################################################################################
name: 'generate static Mermaid files'
on:
workflow_call:
inputs:
mmdc_version:
required: true
default: 10.2.4
type: string
node_version:
required: true
default: 16
type: string
outputs:
found_files:
description: "Information which mermaid files are found in step"
value: ${{ jobs.generate-mermaid-files.outputs.mermaid_files }}
files:
description: "Information which mermaid files will be generated"
value: ${{ jobs.generate-mermaid-files.outputs.generated_files }}
jobs:
generate-mermaid-files:
runs-on: ubuntu-latest
steps:
- name: setup node
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node_version }}
- name: install mermaid cli
# https://www.npmjs.com/package/@mermaid-js/mermaid-cli
run: |
npm install -g @mermaid-js/mermaid-cli@${{ inputs.mmdc_version.value }}
- name: print mmdc version
run: |
mmdc -V
- name: checkout source repo
uses: actions/checkout@v4
- name: search for files
id: search_files
run: |
pwd
echo "mermaid_files=$(find . -type f \( -name "*.mmd" -o -name "*.mermaid" \) | xargs )" >> $GITHUB_OUTPUT
- name: show step output
run: echo "step files from ${{ steps.search_files.outputs.mermaid_files }}"
- name: generate svg file
id: generate
run: |
for file in ${{ steps.search_files.outputs.mermaid_files }};
do
mmdc -i $file -o ${file%.*}.svg
echo "${file%.*}.svg"
echo "generated_files=${file%.*}.svg" >> $GITHUB_OUTPUT
done
- uses: actions/upload-artifact@v4
# upload generated files as Job artifacts which can be downloaded in the in your caller workflow
with:
name: artifacts
path: "**/*.svg"
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`