Skip to content

Commit c5f6f07

Browse files
committed
Split shell commands into multiple lines for readability
The project's GitHub Actions workflows and tasks contain complex shell command lines. With the use of the line continuation operator, these commands can be split into multiple code lines. This improves readability by providing a visualization of the command structure and avoiding excessive line lengths. It also improves maintainability by making diffs for changes to these commands more clear. Previously this was done in many commands, but not consistently throughout the project.
1 parent e18fc35 commit c5f6f07

File tree

6 files changed

+189
-53
lines changed

6 files changed

+189
-53
lines changed

.github/workflows/check-go-dependencies-task.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,21 @@ jobs:
9292
version: 3.x
9393

9494
- name: Update dependencies license metadata cache
95-
run: task --silent general:cache-dep-licenses
95+
run: |
96+
task \
97+
--silent \
98+
general:cache-dep-licenses
9699
97100
- name: Check for outdated cache
98101
id: diff
99102
run: |
100103
git add .
101-
if ! git diff --cached --color --exit-code; then
104+
if
105+
! git diff \
106+
--cached \
107+
--color \
108+
--exit-code
109+
then
102110
echo
103111
echo "::error::Dependency license metadata out of sync. See: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-go-dependencies-task.md#metadata-cache"
104112
exit 1

.github/workflows/check-go-task.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,10 @@ jobs:
161161
- name: Check style
162162
env:
163163
GO_MODULE_PATH: ${{ matrix.module.path }}
164-
run: task --silent go:lint
164+
run: |
165+
task \
166+
--silent \
167+
go:lint
165168
166169
check-formatting:
167170
name: check-formatting (${{ matrix.module.path }})

.github/workflows/check-license.yml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ jobs:
8080
ruby-version: ruby # Install latest version
8181

8282
- name: Install licensee
83-
run: gem install licensee
83+
run: |
84+
gem install \
85+
licensee
8486
8587
- name: Check license file for ${{ matrix.check-license.path }}
8688
run: |
@@ -92,14 +94,26 @@ jobs:
9294
# See: https://github.com/licensee/licensee
9395
LICENSEE_OUTPUT="$(licensee detect --json --confidence=100)"
9496
95-
DETECTED_LICENSE_FILE="$(echo "$LICENSEE_OUTPUT" | jq .matched_files[0].filename | tr --delete '\r')"
97+
DETECTED_LICENSE_FILE="$(
98+
echo "$LICENSEE_OUTPUT" \
99+
| \
100+
jq .matched_files[0].filename \
101+
| \
102+
tr --delete '\r'
103+
)"
96104
echo "Detected license file: $DETECTED_LICENSE_FILE"
97105
if [ "$DETECTED_LICENSE_FILE" != "\"${{ matrix.check-license.expected-filename }}\"" ]; then
98106
echo "::error file=${DETECTED_LICENSE_FILE}::detected license file $DETECTED_LICENSE_FILE doesn't match expected: ${{ matrix.check-license.expected-filename }}"
99107
EXIT_STATUS=1
100108
fi
101109
102-
DETECTED_LICENSE_TYPE="$(echo "$LICENSEE_OUTPUT" | jq .matched_files[0].matched_license | tr --delete '\r')"
110+
DETECTED_LICENSE_TYPE="$(
111+
echo "$LICENSEE_OUTPUT" \
112+
| \
113+
jq .matched_files[0].matched_license \
114+
| \
115+
tr --delete '\r'
116+
)"
103117
echo "Detected license type: $DETECTED_LICENSE_TYPE"
104118
if [ "$DETECTED_LICENSE_TYPE" != "\"${{ matrix.check-license.expected-type }}\"" ]; then
105119
echo "::error file=${DETECTED_LICENSE_FILE}::detected license type $DETECTED_LICENSE_TYPE doesn't match expected \"${{ matrix.check-license.expected-type }}\""

.github/workflows/release-go-crosscompile-task.yml

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,14 @@ jobs:
125125
KEYCHAIN_PASSWORD: keychainpassword
126126
run: |
127127
echo "${{ secrets.INSTALLER_CERT_MAC_P12 }}" | base64 --decode >"${{ env.INSTALLER_CERT_MAC_PATH }}"
128-
security create-keychain -p "${{ env.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}"
129-
security default-keychain -s "${{ env.KEYCHAIN }}"
130-
security unlock-keychain -p "${{ env.KEYCHAIN_PASSWORD }}" "${{ env.KEYCHAIN }}"
128+
security create-keychain \
129+
-p "${{ env.KEYCHAIN_PASSWORD }}" \
130+
"${{ env.KEYCHAIN }}"
131+
security default-keychain \
132+
-s "${{ env.KEYCHAIN }}"
133+
security unlock-keychain \
134+
-p "${{ env.KEYCHAIN_PASSWORD }}" \
135+
"${{ env.KEYCHAIN }}"
131136
security import \
132137
"${{ env.INSTALLER_CERT_MAC_PATH }}" \
133138
-k "${{ env.KEYCHAIN }}" \
@@ -143,13 +148,18 @@ jobs:
143148
144149
- name: Install gon for code signing and app notarization
145150
run: |
146-
wget -q https://github.com/Bearer/gon/releases/download/v0.0.27/gon_macos.zip
147-
unzip gon_macos.zip -d /usr/local/bin
151+
wget \
152+
-q \
153+
https://github.com/Bearer/gon/releases/download/v0.0.27/gon_macos.zip
148154
155+
unzip \
156+
gon_macos.zip \
157+
-d /usr/local/bin
149158
- name: Write gon config to file
150159
# gon does not allow env variables in config file (https://github.com/mitchellh/gon/issues/20)
151160
run: |
152-
cat >"${{ env.GON_CONFIG_PATH }}" <<EOF
161+
cat >"${{ env.GON_CONFIG_PATH }}" \
162+
<<EOF
153163
# See: https://github.com/Bearer/gon#configuration-file
154164
source = ["${{ env.DIST_DIR }}/${{ env.BUILD_FOLDER }}/${{ env.PROJECT_NAME }}"]
155165
bundle_id = "cc.arduino.${{ env.PROJECT_NAME }}"
@@ -179,9 +189,14 @@ jobs:
179189
run: |
180190
# GitHub's upload/download-artifact actions don't preserve file permissions,
181191
# so we need to add execution permission back until the action is made to do this.
182-
chmod +x "${{ env.BUILD_FOLDER }}/${{ env.PROJECT_NAME }}"
183-
tar -czvf "${{ env.PACKAGE_FILENAME }}" "${{ env.BUILD_FOLDER }}/"
192+
chmod \
193+
+x \
194+
"${{ env.BUILD_FOLDER }}/${{ env.PROJECT_NAME }}"
184195
196+
tar \
197+
-czv \
198+
-f "${{ env.PACKAGE_FILENAME }}" \
199+
"${{ env.BUILD_FOLDER }}/"
185200
- name: Replace artifact with notarized build
186201
uses: actions/upload-artifact@v4
187202
with:
@@ -215,10 +230,19 @@ jobs:
215230
# to implement auto pre-release based on tag
216231
id: prerelease
217232
run: |
218-
wget -q -P /tmp https://github.com/fsaintjacques/semver-tool/archive/3.2.0.zip
219-
unzip -p /tmp/3.2.0.zip semver-tool-3.2.0/src/semver >/tmp/semver && chmod +x /tmp/semver
220-
if [[ "$(/tmp/semver get prerel "${GITHUB_REF/refs\/tags\//}")" ]]; then echo "IS_PRE=true" >> $GITHUB_OUTPUT; fi
233+
wget \
234+
-q \
235+
-P /tmp https://github.com/fsaintjacques/semver-tool/archive/3.2.0.zip
221236
237+
unzip \
238+
-p /tmp/3.2.0.zip semver-tool-3.2.0/src/semver \
239+
>/tmp/semver
240+
chmod \
241+
+x \
242+
/tmp/semver
243+
if [[ "$(/tmp/semver get prerel "${GITHUB_REF/refs\/tags\//}")" ]]; then
244+
echo "IS_PRE=true" >>$GITHUB_OUTPUT
245+
fi
222246
- name: Create Github Release and upload artifacts
223247
uses: ncipollo/release-action@v1
224248
with:

DistTasks.yml

Lines changed: 83 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,17 @@ tasks:
2626
GO386: "softfloat"
2727
cmds:
2828
- |
29-
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe {{.LDFLAGS}}
29+
go build \
30+
-o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe \
31+
{{.LDFLAGS}}
3032
cd {{.DIST_DIR}}
31-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
32-
zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe {{.PLATFORM_DIR}}/LICENSE.txt
33+
cp \
34+
../LICENSE.txt \
35+
{{.PLATFORM_DIR}}/
36+
zip \
37+
{{.PACKAGE_NAME}} \
38+
{{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe \
39+
{{.PLATFORM_DIR}}/LICENSE.txt
3340
vars:
3441
PLATFORM_DIR: "{{.PROJECT_NAME}}_windows_386"
3542
PACKAGE_PLATFORM: "Windows_32bit"
@@ -42,10 +49,17 @@ tasks:
4249
GOARCH: "amd64"
4350
cmds:
4451
- |
45-
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe {{.LDFLAGS}}
52+
go build \
53+
-o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe \
54+
{{.LDFLAGS}}
4655
cd {{.DIST_DIR}}
47-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
48-
zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe {{.PLATFORM_DIR}}/LICENSE.txt
56+
cp \
57+
../LICENSE.txt \
58+
{{.PLATFORM_DIR}}/
59+
zip \
60+
{{.PACKAGE_NAME}} \
61+
{{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe \
62+
{{.PLATFORM_DIR}}/LICENSE.txt
4963
vars:
5064
PLATFORM_DIR: "{{.PROJECT_NAME}}_windows_amd64"
5165
PACKAGE_PLATFORM: "Windows_64bit"
@@ -59,10 +73,16 @@ tasks:
5973
GO386: "softfloat"
6074
cmds:
6175
- |
62-
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
76+
go build \
77+
-o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} \
78+
{{.LDFLAGS}}
6379
cd {{.DIST_DIR}}
64-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
65-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
80+
cp \
81+
../LICENSE.txt \
82+
{{.PLATFORM_DIR}}/
83+
tar cz \
84+
{{.PLATFORM_DIR}} \
85+
-f {{.PACKAGE_NAME}}
6686
vars:
6787
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_amd32"
6888
PACKAGE_PLATFORM: "Linux_32bit"
@@ -75,10 +95,16 @@ tasks:
7595
GOARCH: "amd64"
7696
cmds:
7797
- |
78-
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
98+
go build \
99+
-o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} \
100+
{{.LDFLAGS}}
79101
cd {{.DIST_DIR}}
80-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
81-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
102+
cp \
103+
../LICENSE.txt \
104+
{{.PLATFORM_DIR}}/
105+
tar cz \
106+
{{.PLATFORM_DIR}} \
107+
-f {{.PACKAGE_NAME}}
82108
vars:
83109
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_amd64"
84110
PACKAGE_PLATFORM: "Linux_64bit"
@@ -92,10 +118,16 @@ tasks:
92118
GOARM: 7
93119
cmds:
94120
- |
95-
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
121+
go build \
122+
-o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} \
123+
{{.LDFLAGS}}
96124
cd {{.DIST_DIR}}
97-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
98-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
125+
cp \
126+
../LICENSE.txt \
127+
{{.PLATFORM_DIR}}/
128+
tar cz \
129+
{{.PLATFORM_DIR}} \
130+
-f {{.PACKAGE_NAME}}
99131
vars:
100132
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_7"
101133
PACKAGE_PLATFORM: "Linux_ARMv7"
@@ -109,10 +141,16 @@ tasks:
109141
GOARM: 6
110142
cmds:
111143
- |
112-
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
144+
go build \
145+
-o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} \
146+
{{.LDFLAGS}}
113147
cd {{.DIST_DIR}}
114-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
115-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
148+
cp \
149+
../LICENSE.txt \
150+
{{.PLATFORM_DIR}}/
151+
tar cz \
152+
{{.PLATFORM_DIR}} \
153+
-f {{.PACKAGE_NAME}}
116154
vars:
117155
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_6"
118156
PACKAGE_PLATFORM: "Linux_ARMv6"
@@ -125,10 +163,16 @@ tasks:
125163
GOARCH: "arm64"
126164
cmds:
127165
- |
128-
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
166+
go build \
167+
-o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} \
168+
{{.LDFLAGS}}
129169
cd {{.DIST_DIR}}
130-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
131-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
170+
cp \
171+
../LICENSE.txt \
172+
{{.PLATFORM_DIR}}/
173+
tar cz \
174+
{{.PLATFORM_DIR}} \
175+
-f {{.PACKAGE_NAME}}
132176
vars:
133177
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_64"
134178
PACKAGE_PLATFORM: "Linux_ARM64"
@@ -141,10 +185,16 @@ tasks:
141185
GOARCH: "amd64"
142186
cmds:
143187
- |
144-
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
188+
go build \
189+
-o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} \
190+
{{.LDFLAGS}}
145191
cd {{.DIST_DIR}}
146-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
147-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
192+
cp \
193+
../LICENSE.txt \
194+
{{.PLATFORM_DIR}}/
195+
tar cz \
196+
{{.PLATFORM_DIR}} \
197+
-f {{.PACKAGE_NAME}}
148198
vars:
149199
PLATFORM_DIR: "{{.PROJECT_NAME}}_osx_darwin_amd64"
150200
PACKAGE_PLATFORM: "macOS_64bit"
@@ -157,10 +207,16 @@ tasks:
157207
GOARCH: "arm64"
158208
cmds:
159209
- |
160-
go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}
210+
go build \
211+
-o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} \
212+
{{.LDFLAGS}}
161213
cd {{.DIST_DIR}}
162-
cp ../LICENSE.txt {{.PLATFORM_DIR}}/
163-
tar cz {{.PLATFORM_DIR}} -f {{.PACKAGE_NAME}}
214+
cp \
215+
../LICENSE.txt \
216+
{{.PLATFORM_DIR}}/
217+
tar cz \
218+
{{.PLATFORM_DIR}} \
219+
-f {{.PACKAGE_NAME}}
164220
vars:
165221
PLATFORM_DIR: "{{.PROJECT_NAME}}_osx_darwin_arm64"
166222
PACKAGE_PLATFORM: "macOS_ARM64"

0 commit comments

Comments
 (0)