Testing JSON parse #266
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Test | |
on: [push] | |
jobs: | |
bat: | |
name: Build and Test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: "20" | |
- name: Perform npm tasks | |
run: npm run ci | |
- name: Perform 'setup-matlab' | |
uses: matlab-actions/setup-matlab@v2 | |
- name: Create buildfile.m in project root for tests | |
run: | | |
cat <<'_EOF' >> "buildfile.m" | |
function plan = buildfile | |
plan = buildplan(localfunctions); | |
plan("test").Dependencies = "build"; | |
plan("deploy").Dependencies = "test"; | |
plan.DefaultTasks = "test"; | |
function buildTask(~) | |
f = fopen('buildlog.txt', 'a+'); fprintf(f, 'building\n'); fclose(f); | |
function testTask(~,tests,options) | |
arguments | |
~ | |
tests string = "tests" | |
options.OutputDetail (1,1) string = "terse" | |
end | |
f = fopen('buildlog.txt', 'a+'); | |
fprintf(f, 'testing\n'); | |
fprintf(f, '%s\n', tests); | |
fprintf(f, '%s\n', options.OutputDetail); | |
fclose(f); | |
function deployTask(~) | |
f = fopen('buildlog.txt', 'a+'); fprintf(f, 'deploying\n'); fclose(f); | |
function checkTask(~) | |
f = fopen('buildlog.txt', 'a+'); fprintf(f, 'checking\n'); fclose(f); | |
function errorTask(~) | |
f = fopen('buildlog.txt', 'a+'); fprintf(f, 'erroring\n'); fclose(f); | |
error('Error occured in errorTask'); | |
_EOF | |
- name: Run build with default tasks | |
uses: ./ | |
- name: Verify correct tasks appear in buildlog.txt | |
run: | | |
set -e | |
grep "building" buildlog.txt | |
grep "testing" buildlog.txt | |
grep "tests" buildlog.txt | |
grep "terse" buildlog.txt | |
! grep "deploying" buildlog.txt | |
! grep "checking" buildlog.txt | |
rm buildlog.txt | |
- name: Run build with specified task | |
uses: ./ | |
with: | |
tasks: deploy | |
- name: Verify correct tasks appear in buildlog.txt | |
run: | | |
set -e | |
grep "building" buildlog.txt | |
grep "testing" buildlog.txt | |
grep "tests" buildlog.txt | |
grep "terse" buildlog.txt | |
grep "deploying" buildlog.txt | |
! grep "checking" buildlog.txt | |
rm buildlog.txt | |
- name: Run build with multiple specified tasks | |
uses: ./ | |
with: | |
tasks: deploy check | |
- name: Verify correct tasks appear in buildlog.txt | |
run: | | |
set -e | |
grep "building" buildlog.txt | |
grep "testing" buildlog.txt | |
grep "tests" buildlog.txt | |
grep "terse" buildlog.txt | |
grep "deploying" buildlog.txt | |
grep "checking" buildlog.txt | |
rm buildlog.txt | |
- name: Run build with task args | |
uses: ./ | |
with: | |
tasks: test("myTests", OutputDetail="concise") | |
- name: Verify correct tasks appear in buildlog.txt | |
run: | | |
set -e | |
grep "building" buildlog.txt | |
grep "testing" buildlog.txt | |
grep "myTests" buildlog.txt | |
grep "concise" buildlog.txt | |
! grep "deploying" buildlog.txt | |
! grep "checking" buildlog.txt | |
rm buildlog.txt | |
- name: Run build with startup options | |
uses: ./ | |
with: | |
startup-options: -logfile console.log | |
- name: Verify tasks appear in buildlog.txt and console.log | |
run: | | |
set -e | |
grep "building" buildlog.txt | |
grep "build" console.log | |
grep "testing" buildlog.txt | |
grep "tests" buildlog.txt | |
grep "terse" buildlog.txt | |
grep "test" console.log | |
! grep "deploying" buildlog.txt | |
! grep "deploy" console.log | |
! grep "checking" buildlog.txt | |
! grep "check" console.log | |
rm buildlog.txt | |
rm console.log | |
- name: Run build with task skipping | |
uses: ./ | |
with: | |
tasks: deploy | |
build-options: -skip test | |
- name: Verify correct tasks appear in buildlog.txt | |
run: | | |
set -e | |
grep "building" buildlog.txt | |
! grep "testing" buildlog.txt | |
! grep "tests" buildlog.txt | |
! grep "terse" buildlog.txt | |
grep "deploying" buildlog.txt | |
! grep "checking" buildlog.txt | |
rm buildlog.txt | |
- name: Run build with continue on failure | |
continue-on-error: true | |
uses: ./ | |
with: | |
tasks: error deploy | |
build-options: -continueOnFailure | |
- name: Verify correct tasks appear in buildlog.txt | |
run: | | |
set -e | |
grep "erroring" buildlog.txt | |
grep "building" buildlog.txt | |
grep "testing" buildlog.txt | |
grep "tests" buildlog.txt | |
grep "terse" buildlog.txt | |
grep "deploying" buildlog.txt | |
! grep "checking" buildlog.txt | |
rm buildlog.txt | |
- name: Run build with startup options | |
continue-on-error: true | |
uses: ./ | |
with: | |
tasks: deploy error | |
build-options: -continueOnFailure | |
startup-options: -logfile console.log | |
- name: Verify workflow command is added | |
run: | | |
grep "::group::deploy" console.log | |
grep "::error::error task failed" console.log | |
rm console.log |