Skip to content

Commit 9b02c98

Browse files
committed
fix(continuous-integration): improve support for working-directory
Signed-off-by: Emilien Escalle <emilien.escalle@escemi.com>
1 parent 52c47c6 commit 9b02c98

File tree

4 files changed

+22
-39
lines changed

4 files changed

+22
-39
lines changed

.github/workflows/continuous-integration.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ jobs:
330330
build-env: ${{ steps.build-variables.outputs.env }}
331331
build-commands: ${{ steps.build-variables.outputs.commands }}
332332
build-artifact: ${{ steps.build-variables.outputs.artifact }}
333+
working-directory: ${{ steps.build-variables.outputs.working-directory }}
333334
steps:
334335
- name: Checkout repository
335336
if: inputs.container == ''
@@ -355,6 +356,9 @@ jobs:
355356
core.setFailed(`The specified working directory does not exist: ${workingDirectory}`);
356357
return;
357358
}
359+
workingDirectory = path.resolve(workingDirectory);
360+
core.debug(`Running in working directory: ${workingDirectory}`);
361+
core.setOutput('working-directory', workingDirectory);
358362
359363
const buildInput = process.env.BUILD_INPUT.trim();
360364
@@ -489,7 +493,7 @@ jobs:
489493
- name: Run lint
490494
uses: ./self-workflow/actions/lint
491495
with:
492-
working-directory: ${{ inputs.working-directory }}
496+
working-directory: ${{ needs.setup.outputs.working-directory }}
493497
container: ${{ inputs.container != '' && 'true' || 'false' }}
494498
command: ${{ steps.preparel-lint-options.outputs.command }}
495499
report-file: ${{ steps.preparel-lint-options.outputs.report-file }}
@@ -536,7 +540,7 @@ jobs:
536540
uses: ./self-workflow/actions/build
537541
with:
538542
container: ${{ inputs.container != '' && 'true' || 'false' }}
539-
working-directory: ${{ inputs.working-directory }}
543+
working-directory: ${{ needs.setup.outputs.working-directory }}
540544
build-secrets: ${{ secrets.build-secrets }}
541545
build-commands: ${{ needs.setup.outputs.build-commands }}
542546
build-env: ${{ needs.setup.outputs.build-env }}
@@ -610,7 +614,7 @@ jobs:
610614
- name: Run tests
611615
uses: ./self-workflow/actions/test
612616
with:
613-
working-directory: ${{ inputs.working-directory }}
617+
working-directory: ${{ needs.setup.outputs.working-directory }}
614618
container: ${{ inputs.container != '' && 'true' || 'false' }}
615619
command: ${{ steps.prepare-test-options.outputs.command }}
616620
coverage: ${{ steps.prepare-test-options.outputs.coverage }}

actions/build/action.yml

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -124,25 +124,17 @@ runs:
124124
with:
125125
script: |
126126
const fs = require('node:fs');
127-
const path = require('node:path');
128-
129-
const buildCommands = process.env.BUILD_COMMANDS || '';
130-
const runScriptCommand = process.env.RUN_SCRIPT_COMMAND;
131-
132-
let workingDirectory = process.env.WORKING_DIRECTORY || '.';
133-
if (!path.isAbsolute(workingDirectory)) {
134-
workingDirectory = path.join(process.env.GITHUB_WORKSPACE, workingDirectory);
135-
}
136-
127+
const workingDirectory = process.env.WORKING_DIRECTORY;
137128
if (!fs.existsSync(workingDirectory)) {
138129
core.setFailed(`The specified working directory does not exist: ${workingDirectory}`);
139130
return;
140131
}
141-
142-
workingDirectory = path.resolve(workingDirectory);
143132
core.debug(`Running in working directory: ${workingDirectory}`);
144133
process.chdir(workingDirectory);
145134
135+
const buildCommands = process.env.BUILD_COMMANDS || '';
136+
const runScriptCommand = process.env.RUN_SCRIPT_COMMAND;
137+
146138
const commands = buildCommands.split('\n')
147139
.map(cmd => cmd.trim())
148140
.filter(Boolean);

actions/lint/action.yml

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -68,25 +68,17 @@ runs:
6868
with:
6969
script: |
7070
const fs = require('node:fs');
71-
const path = require('node:path');
72-
73-
const runScriptCommand = process.env.RUN_LINT_COMMAND;
74-
const lintCommand = process.env.LINT_COMMAND || 'lint:ci';
75-
76-
let workingDirectory = process.env.WORKING_DIRECTORY || '.';
77-
if (!path.isAbsolute(workingDirectory)) {
78-
workingDirectory = path.join(process.env.GITHUB_WORKSPACE, workingDirectory);
79-
}
80-
71+
const workingDirectory = process.env.WORKING_DIRECTORY;
8172
if (!fs.existsSync(workingDirectory)) {
8273
core.setFailed(`The specified working directory does not exist: ${workingDirectory}`);
8374
return;
8475
}
85-
86-
workingDirectory = path.resolve(workingDirectory);
8776
core.debug(`Running in working directory: ${workingDirectory}`);
8877
process.chdir(workingDirectory);
8978
79+
const runScriptCommand = process.env.RUN_LINT_COMMAND;
80+
const lintCommand = process.env.LINT_COMMAND || 'lint:ci';
81+
9082
core.info(`👕 Running lint command: ${lintCommand}...`);
9183
9284
try {

actions/test/action.yml

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -85,25 +85,18 @@ runs:
8585
with:
8686
script: |
8787
const fs = require('node:fs');
88-
const path = require('node:path');
89-
90-
const runScriptCommand = process.env.RUN_TEST_COMMAND;
91-
const testCommand = process.env.TEST_COMMAND || 'test:ci';
92-
93-
let workingDirectory = process.env.WORKING_DIRECTORY || '.';
94-
if (!path.isAbsolute(workingDirectory)) {
95-
workingDirectory = path.join(process.env.GITHUB_WORKSPACE, workingDirectory);
96-
}
97-
88+
const workingDirectory = process.env.WORKING_DIRECTORY;
9889
if (!fs.existsSync(workingDirectory)) {
9990
core.setFailed(`The specified working directory does not exist: ${workingDirectory}`);
10091
return;
10192
}
102-
103-
workingDirectory = path.resolve(workingDirectory);
10493
core.debug(`Running in working directory: ${workingDirectory}`);
10594
process.chdir(workingDirectory);
10695
96+
const runScriptCommand = process.env.RUN_TEST_COMMAND;
97+
const testCommand = process.env.TEST_COMMAND || 'test:ci';
98+
99+
107100
core.info(`🧪 Running test command: ${testCommand}...`);
108101
109102
try {
@@ -152,6 +145,8 @@ runs:
152145
if: always() && inputs.coverage == 'codecov'
153146
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
154147
with:
148+
directory: ${{ inputs.working-directory }}
149+
root_dir: ${{ inputs.working-directory }}
155150
working-directory: ${{ inputs.working-directory }}
156151
use_oidc: true
157152
disable_telem: true

0 commit comments

Comments
 (0)