4
4
push :
5
5
branches :
6
6
- master
7
- pull_request :
7
+ pull_request : {}
8
8
env :
9
9
CARGO_TERM_COLOR : always
10
10
INDEX_HTML_HEAD_REPLACEMENT : <script defer data-domain="dev.graphite.rs" data-api="https://graphite.rs/visit/event" src="https://graphite.rs/visit/script.hash.js"></script>
13
13
build :
14
14
runs-on : self-hosted
15
15
permissions :
16
- contents : read
16
+ contents : write
17
17
deployments : write
18
18
pull-requests : write
19
+ actions : write
19
20
env :
20
21
RUSTC_WRAPPER : /usr/bin/sccache
21
22
CARGO_INCREMENTAL : 0
47
48
rustc --version
48
49
49
50
- name : ✂ Replace template in <head> of index.html
51
+ if : github.ref != 'refs/heads/master'
52
+ env :
53
+ INDEX_HTML_HEAD_REPLACEMENT : " "
50
54
run : |
51
55
# Remove the INDEX_HTML_HEAD_REPLACEMENT environment variable for build links (not master deploys)
52
- git rev-parse --abbrev-ref HEAD | grep master > /dev/null || export INDEX_HTML_HEAD_REPLACEMENT=""
53
56
sed -i "s|<!-- INDEX_HTML_HEAD_REPLACEMENT -->|$INDEX_HTML_HEAD_REPLACEMENT|" frontend/index.html
54
57
55
58
- name : 🌐 Build Graphite web code
70
73
projectName : graphite-dev
71
74
directory : frontend/dist
72
75
76
+ - name : 💬 Comment build link URL to commit hash page on GitHub
77
+ env :
78
+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
79
+ run : |
80
+ gh api \
81
+ -X POST \
82
+ -H "Accept: application/vnd.github+json" \
83
+ /repos/${{ github.repository }}/commits/${{ github.sha }}/comments \
84
+ -f body="Graphite Dev build link: ${{ steps.cloudflare.outputs.url }}"
85
+
73
86
- name : 👕 Lint Graphite web formatting
74
87
env :
75
88
NODE_ENV : production
@@ -91,6 +104,49 @@ jobs:
91
104
run : |
92
105
mold -run cargo test --all-features --workspace
93
106
107
+ - name : 📃 Generate code documentation info for website
108
+ # if: github.ref == 'refs/heads/master'
109
+ run : |
110
+ cargo test --package graphite-editor --lib -- messages::message::test::generate_message_tree
111
+ mkdir -p artifacts-generated
112
+ mv hierarchical_message_system_tree.txt artifacts-generated/hierarchical_message_system_tree.txt
113
+
114
+ - name : 💿 Obtain cache of auto-generated code docs artifacts, to check if they've changed
115
+ id : cache-website-code-docs
116
+ uses : actions/cache/restore@v3
117
+ with :
118
+ path : artifacts
119
+ key : website-code-docs
120
+
121
+ - name : 🔍 Check if auto-generated code docs artifacts changed
122
+ id : website-code-docs-changed
123
+ run : |
124
+ if ! diff --brief --recursive artifacts-generated artifacts; then
125
+ echo "Auto-generated code docs artifacts have changed."
126
+ rm -rf artifacts
127
+ mv artifacts-generated artifacts
128
+ echo "changed=true" >> $GITHUB_OUTPUT
129
+ else
130
+ echo "Auto-generated code docs artifacts have not changed."
131
+ rm -rf artifacts
132
+ rm -rf artifacts-generated
133
+ fi
134
+
135
+ - name : 💾 Save cache of auto-generated code docs artifacts
136
+ if : steps.website-code-docs-changed.outputs.changed == 'true'
137
+ uses : actions/cache/save@v3
138
+ with :
139
+ path : artifacts
140
+ key : ${{ steps.cache-website-code-docs.outputs.cache-primary-key }}
141
+
142
+ - name : ♻️ Trigger website rebuild if the auto-generated code docs artifacts have changed
143
+ if : steps.website-code-docs-changed.outputs.changed == 'true'
144
+ env :
145
+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
146
+ run : |
147
+ rm -rf artifacts
148
+ gh workflow run website.yml --ref master
149
+
94
150
# miri:
95
151
# runs-on: self-hosted
96
152
0 commit comments