Skip to content

Commit c06cafe

Browse files
committed
ci (ci): quote workspace paths in workflow for reliability
Quotes all workspace-related paths and arguments in workflow to prevent path parsing errors and ensure compatibility across environments.
1 parent fa07296 commit c06cafe

File tree

1 file changed

+27
-27
lines changed

1 file changed

+27
-27
lines changed

.github/workflows/ci.yml

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -64,46 +64,46 @@ jobs:
6464
uses: actions/download-artifact@v5
6565
with:
6666
name: version
67-
path: ${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Version
67+
path: '${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Version'
6868

6969
- name: '🔧 Setup .NET'
7070
uses: actions/setup-dotnet@v5
7171
with:
72-
config-file: ${{ github.workspace }}/global.json
72+
config-file: '${{ github.workspace }}/global.json'
7373

7474
- name: '📲 Install .NET MAUI workloads if needed'
7575
uses: framinosona/github_actions/dotnet@main
7676
with:
7777
command: workload
78-
arguments: restore ${{ github.workspace }}/${{ env.PROJECT_NAME }}.slnx
78+
arguments: restore '${{ github.workspace }}/${{ env.PROJECT_NAME }}.slnx'
7979
show-summary: true
8080

8181
# ============================ BUILD ============================
8282
- name: '🔄 Restore'
8383
uses: framinosona/github_actions/dotnet@main
8484
with:
8585
command: restore
86-
path: ${{ github.workspace }}/${{ env.PROJECT_NAME }}.slnx
86+
path: '${{ github.workspace }}/${{ env.PROJECT_NAME }}.slnx'
8787
show-summary: true
8888

8989
- name: '🔨 Build'
9090
uses: framinosona/github_actions/dotnet@main
9191
with:
9292
command: build
93-
path: ${{ github.workspace }}/${{ env.PROJECT_NAME }}.slnx
93+
path: '${{ github.workspace }}/${{ env.PROJECT_NAME }}.slnx'
9494
configuration: Release
9595
no-restore: true
96-
arguments: |
97-
-p:Version_Props_Path=${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Version/version.props \
98-
-p:GeneratePackageOnBuild=true \
99-
-p:PackageOutputPath=${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Packages
96+
arguments: >
97+
-p:Version_Props_Path='${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Version/version.props'
98+
-p:GeneratePackageOnBuild=true
99+
-p:PackageOutputPath='${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Packages'
100100
show-summary: true
101101

102102
- name: '📦 Upload NuGet packages'
103103
uses: actions/upload-artifact@v4
104104
with:
105105
name: packages
106-
path: ${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Packages
106+
path: '${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Packages'
107107
if-no-files-found: error
108108

109109
# ============================ TESTS & COVERAGE ============================
@@ -120,24 +120,24 @@ jobs:
120120
uses: framinosona/github_actions/dotnet-test@main
121121
if: ${{ success() && !cancelled() && steps.check-tests.outputs.exists == 'true' }}
122122
with:
123-
path: ${{ github.workspace }}/${{ env.PROJECT_NAME }}.Tests/${{ env.PROJECT_NAME }}.Tests.csproj
123+
path: '${{ github.workspace }}/${{ env.PROJECT_NAME }}.Tests/${{ env.PROJECT_NAME }}.Tests.csproj'
124124
configuration: Release
125125
no-build: true
126126
logger: 'trx;LogFileName=test-results.trx'
127-
results-directory: ${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Tests
128-
arguments: |
129-
-p:TestOutputPath=${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Tests \
130-
-p:CollectCoverage=true \
131-
-p:CoverletOutputFormat=cobertura \
132-
-p:CoverletOutput=${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Tests/coverage.cobertura.xml
127+
results-directory: '${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Tests'
128+
arguments: >
129+
-p:TestOutputPath='${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Tests'
130+
-p:CollectCoverage=true
131+
-p:CoverletOutputFormat=cobertura
132+
-p:CoverletOutput='${{ github.workspace }}/${{ env.PROJECT_NAME }}.Output/Tests/coverage.cobertura.xml'
133133
show-summary: true
134134

135135
- name: '📦 Upload test artifacts'
136136
uses: actions/upload-artifact@v4
137137
if: ${{ success() && !cancelled() && steps.check-tests.outputs.exists == 'true' }}
138138
with:
139139
name: tests
140-
path: ${{ env.PROJECT_NAME }}.Output/Tests/
140+
path: '${{ env.PROJECT_NAME }}.Output/Tests/'
141141

142142
# ============================ DOCS ============================
143143
- name: '🔍 Check if docs are needed'
@@ -153,23 +153,23 @@ jobs:
153153
uses: framinosona/github_actions/dotnet-docfx-metadata@main
154154
if: ${{ success() && !cancelled() && steps.check-docs.outputs.exists == 'true' }}
155155
with:
156-
config: ${{ github.workspace }}/${{ env.PROJECT_NAME }}.Docs/docfx.json
157-
output: ${{ github.workspace }}/${{ env.PROJECT_NAME }}.Docs/api
156+
config: '${{ github.workspace }}/${{ env.PROJECT_NAME }}.Docs/docfx.json'
157+
output: '${{ github.workspace }}/${{ env.PROJECT_NAME }}.Docs/api'
158158
show-summary: true
159159

160160
- name: "📚 Build documentation site"
161161
uses: framinosona/github_actions/dotnet-docfx-build@main
162162
if: ${{ success() && !cancelled() && steps.check-docs.outputs.exists == 'true' }}
163163
with:
164-
config: ${{ github.workspace }}/${{ env.PROJECT_NAME }}.Docs/docfx.json
165-
output: ${{ github.workspace }}/${{ env.PROJECT_NAME }}.Docs/site
164+
config: '${{ github.workspace }}/${{ env.PROJECT_NAME }}.Docs/docfx.json'
165+
output: '${{ github.workspace }}/${{ env.PROJECT_NAME }}.Docs/site'
166166
show-summary: true
167167

168168
- name: "📦 Upload GitHub Pages artifact"
169169
if: ${{ success() && !cancelled() && github.ref == 'refs/heads/main' && steps.check-docs.outputs.exists == 'true' }}
170170
uses: actions/upload-pages-artifact@v4
171171
with:
172-
path: ${{ github.workspace }}/${{ env.PROJECT_NAME }}.Docs/site
172+
path: '${{ github.workspace }}/${{ env.PROJECT_NAME }}.Docs/site'
173173
name: github-pages
174174

175175
publish-docs:
@@ -197,12 +197,12 @@ jobs:
197197
uses: actions/download-artifact@v5
198198
with:
199199
name: packages
200-
path: ${{ github.workspace }}/packages
200+
path: '${{ github.workspace }}/packages'
201201

202202
- name: '📦 Push Packages to NuGet.org'
203203
uses: framinosona/github_actions/dotnet-nuget-upload@main
204204
with:
205-
package-path: ${{ github.workspace }}/packages/*.nupkg
205+
package-path: '${{ github.workspace }}/packages/*.nupkg'
206206
api-key: ${{ secrets.NUGET_ORG_API_KEY }}
207207
source: 'https://api.nuget.org/v3/index.json'
208208
show-summary: true
@@ -217,12 +217,12 @@ jobs:
217217
uses: actions/download-artifact@v5
218218
with:
219219
name: tests
220-
path: ${{ github.workspace }}/tests
220+
path: '${{ github.workspace }}/tests'
221221

222222
- name: '📊 Publish Test Results'
223223
uses: EnricoMi/publish-unit-test-result-action/linux@v2
224224
with:
225-
files: ${{ github.workspace }}/tests/test-results.trx
225+
files: '${{ github.workspace }}/tests/test-results.trx'
226226

227227
tag-and-release:
228228
name: '🏷️ Tag & Release'

0 commit comments

Comments
 (0)