Skip to content

Commit 2cd32b7

Browse files
Copilotrajbos
andauthored
fix: resolve all actionlint issues across workflow files (#459)
- cli-build.yml: remove merge conflict markers, use matrix strategy, keep diagnostics step - check-models.yml: quote $GITHUB_OUTPUT, use grep -c instead of grep|wc -l - cli-publish.yml: group redirects with { } >> file (SC2129) - copilot-setup-steps.yml: convert ARGS string to bash array (SC2086) - release.yml: quote $GITHUB_OUTPUT/$GITHUB_STEP_SUMMARY, group redirects, use find instead of ls - sync-release-notes.yml: quote $GITHUB_OUTPUT - sync-toolnames.yml: quote ${GITHUB_WORKSPACE} and $GITHUB_OUTPUT - validate-skills.yml: quote $GITHUB_OUTPUT Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: rajbos <6085745+rajbos@users.noreply.github.com> Co-authored-by: Rob Bos <rajbos@users.noreply.github.com>
1 parent c0394a8 commit 2cd32b7

File tree

7 files changed

+78
-70
lines changed

7 files changed

+78
-70
lines changed

.github/workflows/check-models.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ jobs:
9999
echo ""
100100
echo "=== Copilot CLI Output ==="
101101
102-
cd ${GITHUB_WORKSPACE}
102+
cd "${GITHUB_WORKSPACE}"
103103
104104
# Run copilot with the prompt using non-interactive mode
105105
COPILOT_PROMPT_TEXT=$(cat /tmp/copilot-prompt.md)
@@ -113,29 +113,29 @@ jobs:
113113
run: |
114114
if git diff --quiet src/tokenEstimators.json src/modelPricing.json; then
115115
echo "No changes detected in model data files"
116-
echo "changed=false" >> $GITHUB_OUTPUT
116+
echo "changed=false" >> "$GITHUB_OUTPUT"
117117
else
118118
# Check if the only change is the lastUpdated date in modelPricing.json
119119
DIFF_OUTPUT=$(git diff src/modelPricing.json)
120120
121121
# Count the number of changed lines (lines starting with +/- but not +++ or ---)
122-
CHANGED_LINES=$(echo "$DIFF_OUTPUT" | grep -E '^[+-][^+-]' | wc -l)
122+
CHANGED_LINES=$(echo "$DIFF_OUTPUT" | grep -cE '^[+-][^+-]' || true)
123123
124124
# Check if only 2 lines changed (one deletion, one addition) and both contain "lastUpdated"
125125
if [ "$CHANGED_LINES" -eq 2 ]; then
126126
# Check if all changed lines contain "lastUpdated"
127-
if echo "$DIFF_OUTPUT" | grep -E '^[+-][^+-]' | grep -v '"lastUpdated"' | wc -l | grep -q '^0$'; then
127+
if ! echo "$DIFF_OUTPUT" | grep -E '^[+-][^+-]' | grep -qv '"lastUpdated"'; then
128128
# Verify no changes to tokenEstimators.json
129129
if git diff --quiet src/tokenEstimators.json; then
130130
echo "Only lastUpdated date changed - skipping PR creation"
131-
echo "changed=false" >> $GITHUB_OUTPUT
131+
echo "changed=false" >> "$GITHUB_OUTPUT"
132132
exit 0
133133
fi
134134
fi
135135
fi
136136
137137
echo "Changes detected in model data files"
138-
echo "changed=true" >> $GITHUB_OUTPUT
138+
echo "changed=true" >> "$GITHUB_OUTPUT"
139139
fi
140140
141141
- name: Create Pull Request

.github/workflows/cli-publish.yml

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -100,14 +100,16 @@ jobs:
100100

101101
- name: Summary
102102
run: |
103-
echo "## CLI Package Published 📦" >> "$GITHUB_STEP_SUMMARY"
104-
echo "" >> "$GITHUB_STEP_SUMMARY"
105-
echo "- **Version:** v${{ steps.version.outputs.version }}" >> "$GITHUB_STEP_SUMMARY"
106-
echo "- **Bump:** ${{ inputs.version_bump }}" >> "$GITHUB_STEP_SUMMARY"
107-
echo "- **Dry run:** ${{ inputs.dry_run }}" >> "$GITHUB_STEP_SUMMARY"
108-
echo "" >> "$GITHUB_STEP_SUMMARY"
109-
if [ "${{ inputs.dry_run }}" = "false" ]; then
110-
echo "Install with: \`npx @rajbos/ai-engineering-fluency\`" >> "$GITHUB_STEP_SUMMARY"
111-
echo "" >> "$GITHUB_STEP_SUMMARY"
112-
echo "A PR has been opened to merge the version bump back to main." >> "$GITHUB_STEP_SUMMARY"
113-
fi
103+
{
104+
echo "## CLI Package Published 📦"
105+
echo ""
106+
echo "- **Version:** v${{ steps.version.outputs.version }}"
107+
echo "- **Bump:** ${{ inputs.version_bump }}"
108+
echo "- **Dry run:** ${{ inputs.dry_run }}"
109+
echo ""
110+
if [ "${{ inputs.dry_run }}" = "false" ]; then
111+
echo "Install with: \`npx @rajbos/ai-engineering-fluency\`"
112+
echo ""
113+
echo "A PR has been opened to merge the version bump back to main."
114+
fi
115+
} >> "$GITHUB_STEP_SUMMARY"

.github/workflows/copilot-setup-steps.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -154,19 +154,19 @@ jobs:
154154
echo "Date range: $START_DATE to $END_DATE"
155155
156156
# Build command arguments
157-
ARGS="--storageAccount $AZURE_STORAGE_ACCOUNT"
158-
ARGS="$ARGS --tableName $AZURE_TABLE_NAME"
159-
ARGS="$ARGS --datasetId $AZURE_DATASET_ID"
160-
ARGS="$ARGS --startDate $START_DATE"
161-
ARGS="$ARGS --endDate $END_DATE"
162-
ARGS="$ARGS --output ./usage-data/usage-agg-daily.json"
157+
ARGS=(--storageAccount "$AZURE_STORAGE_ACCOUNT")
158+
ARGS+=(--tableName "$AZURE_TABLE_NAME")
159+
ARGS+=(--datasetId "$AZURE_DATASET_ID")
160+
ARGS+=(--startDate "$START_DATE")
161+
ARGS+=(--endDate "$END_DATE")
162+
ARGS+=(--output ./usage-data/usage-agg-daily.json)
163163
164164
# Use shared key if available, otherwise rely on Entra ID (DefaultAzureCredential)
165165
if [ -n "$AZURE_STORAGE_KEY" ]; then
166-
ARGS="$ARGS --sharedKey $AZURE_STORAGE_KEY"
166+
ARGS+=(--sharedKey "$AZURE_STORAGE_KEY")
167167
fi
168168
169-
node .github/skills/azure-storage-loader/load-table-data.js $ARGS || {
169+
node .github/skills/azure-storage-loader/load-table-data.js "${ARGS[@]}" || {
170170
echo "⚠️ Failed to download aggregated usage data, continuing without it"
171171
exit 0
172172
}

.github/workflows/release.yml

Lines changed: 45 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -49,18 +49,18 @@ jobs:
4949
id: trigger_type
5050
run: |
5151
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
52-
echo "is_manual=true" >> $GITHUB_OUTPUT
52+
echo "is_manual=true" >> "$GITHUB_OUTPUT"
5353
echo "Triggered manually via workflow_dispatch"
5454
else
55-
echo "is_manual=false" >> $GITHUB_OUTPUT
55+
echo "is_manual=false" >> "$GITHUB_OUTPUT"
5656
echo "Triggered by tag push"
5757
fi
5858
5959
- name: Extract version from package.json
6060
id: package_version
6161
run: |
6262
PACKAGE_VERSION=$(node -p "require('./package.json').version")
63-
echo "package_version=$PACKAGE_VERSION" >> $GITHUB_OUTPUT
63+
echo "package_version=$PACKAGE_VERSION" >> "$GITHUB_OUTPUT"
6464
echo "Package version: $PACKAGE_VERSION"
6565
6666
- name: Extract version from tag
@@ -73,7 +73,7 @@ jobs:
7373
# For tag triggers, extract from the tag
7474
TAG_VERSION=${GITHUB_REF#refs/tags/v}
7575
fi
76-
echo "tag_version=$TAG_VERSION" >> $GITHUB_OUTPUT
76+
echo "tag_version=$TAG_VERSION" >> "$GITHUB_OUTPUT"
7777
echo "Release version: $TAG_VERSION"
7878
7979
- name: Verify version consistency
@@ -95,7 +95,7 @@ jobs:
9595
else
9696
TAG_NAME="${{ github.ref_name }}"
9797
fi
98-
echo "tag_name=$TAG_NAME" >> $GITHUB_OUTPUT
98+
echo "tag_name=$TAG_NAME" >> "$GITHUB_OUTPUT"
9999
echo "Tag name: $TAG_NAME"
100100
101101
- name: Generate release notes
@@ -150,7 +150,7 @@ jobs:
150150
run: |
151151
VERSION="${{ steps.extract_version.outputs.tag_version }}"
152152
BRANCH="changelog/v${VERSION}"
153-
echo "branch=$BRANCH" >> $GITHUB_OUTPUT
153+
echo "branch=$BRANCH" >> "$GITHUB_OUTPUT"
154154
155155
git config --local user.name "github-actions[bot]"
156156
git config --local user.email "github-actions[bot]@users.noreply.github.com"
@@ -239,8 +239,8 @@ jobs:
239239
- name: Get VSIX filename
240240
id: vsix_filename
241241
run: |
242-
VSIX_FILE=$(ls *.vsix | head -n 1)
243-
echo "vsix_file=$VSIX_FILE" >> $GITHUB_OUTPUT
242+
VSIX_FILE=$(find . -maxdepth 1 -name "*.vsix" -exec basename {} \; | head -n 1)
243+
echo "vsix_file=$VSIX_FILE" >> "$GITHUB_OUTPUT"
244244
echo "VSIX file: $VSIX_FILE"
245245
246246
- name: Upload VSIX as workflow artifact
@@ -270,26 +270,30 @@ jobs:
270270
if: always()
271271
run: |
272272
if [ "${{ steps.create_release.outcome }}" == "success" ]; then
273-
echo "# ✅ Release Created Successfully" >> $GITHUB_STEP_SUMMARY
274-
echo "" >> $GITHUB_STEP_SUMMARY
275-
echo "🎉 Release ${{ steps.extract_version.outputs.tag_version }} created successfully!" >> $GITHUB_STEP_SUMMARY
276-
echo "📦 VSIX package: ${{ steps.vsix_filename.outputs.vsix_file }}" >> $GITHUB_STEP_SUMMARY
277-
echo "🔗 [Release URL](https://github.com/${{ github.repository }}/releases/tag/${{ steps.tag_name.outputs.tag_name }})" >> $GITHUB_STEP_SUMMARY
273+
{
274+
echo "# ✅ Release Created Successfully"
275+
echo ""
276+
echo "🎉 Release ${{ steps.extract_version.outputs.tag_version }} created successfully!"
277+
echo "📦 VSIX package: ${{ steps.vsix_filename.outputs.vsix_file }}"
278+
echo "🔗 [Release URL](https://github.com/${{ github.repository }}/releases/tag/${{ steps.tag_name.outputs.tag_name }})"
279+
} >> "$GITHUB_STEP_SUMMARY"
278280
else
279-
echo "# ❌ Release Creation Failed" >> $GITHUB_STEP_SUMMARY
280-
echo "" >> $GITHUB_STEP_SUMMARY
281-
echo "**Version:** ${{ steps.extract_version.outputs.tag_version }}" >> $GITHUB_STEP_SUMMARY
282-
echo "**Tag:** ${{ steps.tag_name.outputs.tag_name }}" >> $GITHUB_STEP_SUMMARY
283-
echo "" >> $GITHUB_STEP_SUMMARY
284-
echo "## Error Details" >> $GITHUB_STEP_SUMMARY
285-
echo "" >> $GITHUB_STEP_SUMMARY
286-
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
287-
if [ -f /tmp/release_output.txt ]; then
288-
cat /tmp/release_output.txt >> $GITHUB_STEP_SUMMARY
289-
else
290-
echo "No error details captured" >> $GITHUB_STEP_SUMMARY
291-
fi
292-
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
281+
{
282+
echo "# ❌ Release Creation Failed"
283+
echo ""
284+
echo "**Version:** ${{ steps.extract_version.outputs.tag_version }}"
285+
echo "**Tag:** ${{ steps.tag_name.outputs.tag_name }}"
286+
echo ""
287+
echo "## Error Details"
288+
echo ""
289+
echo "\`\`\`"
290+
if [ -f /tmp/release_output.txt ]; then
291+
cat /tmp/release_output.txt
292+
else
293+
echo "No error details captured"
294+
fi
295+
echo "\`\`\`"
296+
} >> "$GITHUB_STEP_SUMMARY"
293297
exit 1
294298
fi
295299
@@ -329,9 +333,9 @@ jobs:
329333
--repo "${{ github.repository }}" \
330334
--pattern "*.vsix" \
331335
--dir .
332-
VSIX_FILE=$(ls *.vsix | head -n 1)
336+
VSIX_FILE=$(find . -maxdepth 1 -name "*.vsix" -exec basename {} \; | head -n 1)
333337
echo "Downloaded: $VSIX_FILE"
334-
echo "vsix_file=$VSIX_FILE" >> $GITHUB_OUTPUT
338+
echo "vsix_file=$VSIX_FILE" >> "$GITHUB_OUTPUT"
335339
336340
- name: Publish to VS Code Marketplace
337341
id: publish
@@ -353,15 +357,17 @@ jobs:
353357
- name: Publish Summary
354358
if: always()
355359
run: |
356-
echo "# 🚀 VS Code Marketplace" >> $GITHUB_STEP_SUMMARY
357-
echo "" >> $GITHUB_STEP_SUMMARY
358-
if [ "${{ steps.publish.outcome }}" == "success" ]; then
359-
echo "✅ Extension v${{ needs.release.outputs.version }} published to the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=RobBos.copilot-token-tracker)" >> $GITHUB_STEP_SUMMARY
360-
else
361-
echo "❌ Failed to publish v${{ needs.release.outputs.version }} to marketplace." >> $GITHUB_STEP_SUMMARY
362-
echo "" >> $GITHUB_STEP_SUMMARY
363-
echo "Ensure the \`VSCE_PAT\` secret is configured with a valid Azure DevOps PAT" >> $GITHUB_STEP_SUMMARY
364-
echo "with the \`Marketplace (Publish)\` scope for all accessible organizations." >> $GITHUB_STEP_SUMMARY
365-
fi
360+
{
361+
echo "# 🚀 VS Code Marketplace"
362+
echo ""
363+
if [ "${{ steps.publish.outcome }}" == "success" ]; then
364+
echo "✅ Extension v${{ needs.release.outputs.version }} published to the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=RobBos.copilot-token-tracker)"
365+
else
366+
echo "❌ Failed to publish v${{ needs.release.outputs.version }} to marketplace."
367+
echo ""
368+
echo "Ensure the \`VSCE_PAT\` secret is configured with a valid Azure DevOps PAT"
369+
echo "with the \`Marketplace (Publish)\` scope for all accessible organizations."
370+
fi
371+
} >> "$GITHUB_STEP_SUMMARY"
366372
367373

.github/workflows/sync-release-notes.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ jobs:
4040
id: changes
4141
run: |
4242
if git diff --quiet CHANGELOG.md; then
43-
echo "changed=false" >> $GITHUB_OUTPUT
43+
echo "changed=false" >> "$GITHUB_OUTPUT"
4444
echo "No changes detected in CHANGELOG.md"
4545
else
46-
echo "changed=true" >> $GITHUB_OUTPUT
46+
echo "changed=true" >> "$GITHUB_OUTPUT"
4747
echo "Changes detected in CHANGELOG.md"
4848
fi
4949

.github/workflows/sync-toolnames.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ jobs:
113113
echo ""
114114
echo "=== Copilot CLI Output ==="
115115
116-
cd ${GITHUB_WORKSPACE}/current-repo/
116+
cd "${GITHUB_WORKSPACE}/current-repo/"
117117
118118
# Run gh copilot with the prompt using non-interactive mode
119119
# Use -s/--silent for script-friendly output, -p for prompt, --allow-all for permissions
@@ -132,10 +132,10 @@ jobs:
132132
run: |
133133
if git diff --quiet; then
134134
echo "No changes detected in toolNames.json"
135-
echo "changed=false" >> $GITHUB_OUTPUT
135+
echo "changed=false" >> "$GITHUB_OUTPUT"
136136
else
137137
echo "Changes detected in toolNames.json"
138-
echo "changed=true" >> $GITHUB_OUTPUT
138+
echo "changed=true" >> "$GITHUB_OUTPUT"
139139
fi
140140
141141
- name: Create Pull Request

.github/workflows/validate-skills.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
sort -u | \
5656
jq -R -s -c 'split("\n") | map(select(length > 0))')
5757
58-
echo "skills=$SKILLS" >> $GITHUB_OUTPUT
58+
echo "skills=$SKILLS" >> "$GITHUB_OUTPUT"
5959
echo "Changed skills: $SKILLS"
6060
6161
validate:

0 commit comments

Comments
 (0)