-
-
Notifications
You must be signed in to change notification settings - Fork 30
142 lines (126 loc) · 5.62 KB
/
gen-configs.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
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
135
136
137
138
139
140
141
142
name: Configs & Live Docs
on:
push:
branches:
- master
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout Submodules
run: |
git submodule update --init --depth=1 unit_tests/googletest
git submodule update --init --depth=1 firmware/libfirmware
git submodule update --init --depth=1 firmware/ext/lua
git submodule update --init --depth=1 firmware/controllers/lua/luaaa
git submodule update --init --depth=1 firmware/controllers/can/wideband_firmware
- name: Install Tools
working-directory: ./.github/workflows/
run: |
sudo ./add-ubuntu-latest-apt-mirrors.sh
sudo apt-get install sshpass sshpass mtools
- name: Generate Live Documentation
working-directory: ./firmware/
run: ./gen_live_documentation.sh
- name: Generate All Configs
working-directory: ./firmware/
run: bash gen_config.sh
# We want to force these files to come from the default "all" config, not the last board generated by gen_config.sh
- name: Reset Default Config Files
working-directory: ./firmware/
run: |
git checkout -- ./controllers/generated/engine_configuration_generated_structures.h
git checkout -- ./controllers/generated/rusefi_generated.h
git checkout -- ../java_console/models/src/main/java/com/rusefi/config/generated/Fields.java
./gen_config_default.sh
# Commit changes and catch the error that occurs if nothing has been changed (without catching other errors)
- name: Commit fresh generated headers and TS project
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub gen-configs Action"
git add firmware/tunerstudio/generated
git add firmware/controllers/generated
git add 'firmware/*/auto_generated*.cpp'
git add 'firmware/*/auto_generated*.h'
git add 'firmware/config/boards/*/generated_ts_name_by_pin.cpp'
git add java_console/io/src/main/java/com/rusefi/enums
git add java_console/models/src/main/java/com/rusefi/config/generated
git add *_generated.h
# get the original ramdisk images back in order to not overwrite the default placeholder
git checkout -- firmware/hw_layer/mass_storage/ramdisk_image.h firmware/hw_layer/mass_storage/ramdisk_image_compressed.h
git status
OUT=$(git commit -am "Auto-generated configs and docs" 2>&1) || echo "commit failed, finding out why"
if echo "$OUT" | grep 'nothing to commit'; then
echo "headers: looks like nothing to commit"
echo "::set-env name=NOCOMMIT::true"
exit 0
elif echo "$OUT" | grep 'changed'; then
echo "headers: looks like something has changed"
exit 0
else
echo "headers: looks like something unexpected"
exit 1
fi
# We need to know what branch this is in order to push to the correct branch
- name: Extract branch name
shell: bash
run: echo "branch=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
id: extract_branch
- name: Push configs
if: ${{env.NOCOMMIT != 'true'}}
uses: ad-m/github-push-action@master
with:
github_token: ${{ github.token }}
branch: ${{ steps.extract_branch.outputs.branch }}
- name: Print Compiler version
# NOTE: on mac, this is actually symlink'd to clang, not gcc, but that's ok - we want to build on both
working-directory: .
run: gcc -v
# - name: Build Tests
# working-directory: ./unit_tests/
# run: make -j4
# - name: Run Tests
# working-directory: ./unit_tests/
# run: ASAN_OPTIONS=detect_stack_use_after_return=1 build/fome_test
# # Commit changes and catch the error that occurs if nothing has been changed (without catching other errors)
# - name: Commit fresh triggers.txt
# if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
# env:
# ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
# #
# # we have minor drama - looks like unit_tests are invoked from root folder while a more natural is to invoke those
# # from 'unit_tests' folder
# # as a work-around to leverage unit_tests/.gitignore we move those files into expected folder for now
# #
# run: |
# git config --local user.email "[email protected]"
# git config --local user.name "GitHub build-unit-tests Action"
# git status
# git remote -v
# echo See https://github.com/rusefi/rusefi/issues/2446
# git pull https://github.com/rusefi/rusefi master
# git add unit_tests/triggers.txt
# git status
# OUT=$(git commit -m "Trigger wheel definitions" unit_tests/triggers.txt 2>&1) || echo "commit failed, finding out why"
# echo "$OUT"
# if echo "$OUT" | grep -E 'nothing to commit|no changes added'; then
# echo "triggers: looks like nothing to commit"
# echo "::set-env name=NOCOMMIT::true"
# exit 0
# elif echo "$OUT" | grep 'changed'; then
# echo "::set-env name=NOCOMMIT::false"
# echo "triggers: looks like something has changed"
# exit 0
# else
# echo "triggers: looks like something unexpected"
# exit 1
# fi
# - name: Push fresh triggers.txt
# if: ${{env.NOCOMMIT != 'true'}}
# uses: ad-m/github-push-action@master
# with:
# github_token: ${{ github.token }}
# branch: ${{ steps.extract_branch.outputs.branch }}