From beeda277791405f68834db43387f7acfe13ac2e3 Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Sun, 27 Aug 2023 12:03:32 +0200 Subject: [PATCH 01/14] Try to download artifact from other workflow --- .github/workflows/main.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 89ad468..b24f03d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -78,6 +78,15 @@ jobs: path: | buildUtilities/.buildtool + - name: Download firmware artifact + uses: dawidd6/action-download-artifact@v2 + with: + github_token: ${{ secrets.REPO_READ_TOKEN }} + repo: sync2brain/bossdevice-firmware + name: bossdevice-firmware-${{ matrix.matlabVer }} + path: toolbox/dependencies/firmware/${{ matrix.matlabVer }} + if_no_artifact_found: fail + - name: Run MATLAB command run: | &"$env:ProgramFiles\MATLAB\${{ matrix.matlabVer }}\bin\matlab.exe" -batch "openProject(pwd); cd('buildUtilities'); buildtool test({'noHW','bdConnected'})" From 2ad9bfec4368e2eed6f441a99ac33a2378a41694 Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Sun, 27 Aug 2023 12:09:15 +0200 Subject: [PATCH 02/14] Update main.yml --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b24f03d..c70749b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -82,7 +82,9 @@ jobs: uses: dawidd6/action-download-artifact@v2 with: github_token: ${{ secrets.REPO_READ_TOKEN }} + workflow: main.yml repo: sync2brain/bossdevice-firmware + search_artifacts: true name: bossdevice-firmware-${{ matrix.matlabVer }} path: toolbox/dependencies/firmware/${{ matrix.matlabVer }} if_no_artifact_found: fail From 9e24e2d183a275e55fa251d72fd7394f02657373 Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Sun, 27 Aug 2023 12:15:10 +0200 Subject: [PATCH 03/14] Remove local update of firmware. Use artifacts instead. --- buildUtilities/buildfile.m | 9 ++------- buildUtilities/updateFirmwareDeps.m | 16 ---------------- .../nWYhdJ9SIXhKqBMoaMa7pxo7Y9Ud.xml | 6 ------ .../nWYhdJ9SIXhKqBMoaMa7pxo7Y9Up.xml | 2 -- 4 files changed, 2 insertions(+), 31 deletions(-) delete mode 100644 buildUtilities/updateFirmwareDeps.m delete mode 100644 resources/project/_BcHeyeYYWxz6MENB98iTz25sSI/nWYhdJ9SIXhKqBMoaMa7pxo7Y9Ud.xml delete mode 100644 resources/project/_BcHeyeYYWxz6MENB98iTz25sSI/nWYhdJ9SIXhKqBMoaMa7pxo7Y9Up.xml diff --git a/buildUtilities/buildfile.m b/buildUtilities/buildfile.m index 5e30b17..5d4a342 100644 --- a/buildUtilities/buildfile.m +++ b/buildUtilities/buildfile.m @@ -19,18 +19,13 @@ Actions = @(~) updateSGdeps,... Outputs = fullfile(projObj.RootFolder,"toolbox/dependencies/sg/**")); -plan("updateFirmwareDeps") = Task( ... - Description = "Update Firmware dependencies", ... - Actions = @(~) updateFirmwareDeps,... - Outputs = fullfile(projObj.RootFolder,"toolbox/dependencies/firmware/**")); - % Create the "test" task and add it to the plan plan("test") = Task( ... Description = "Run unit tests", ... Actions = @(~,tags) testTask(tags),... Inputs = [fullfile(projObj.RootFolder,'**/*.m'),... plan("updateSGdeps").Outputs,... - plan("updateFirmwareDeps").Outputs]); + fullfile(projObj.RootFolder,"toolbox/dependencies/firmware/**")]); plan("buildDoc") = Task( ... Description = "Build HTML doc from sources", ... @@ -43,7 +38,7 @@ Description = "Package toolbox", ... Dependencies = ["check" "test"], ... Actions = @(~,toolboxVer,authorName) releaseTask(toolboxVer,authorName),... - Inputs = [plan("buildDoc").Outputs, plan("updateSGdeps").Outputs plan("updateFirmwareDeps").Outputs]); + Inputs = [plan("buildDoc").Outputs, plan("updateSGdeps").Outputs fullfile(projObj.RootFolder,"toolbox/dependencies/firmware/**")]); % Set default tasks in the plan plan.DefaultTasks = ["check" "test"]; diff --git a/buildUtilities/updateFirmwareDeps.m b/buildUtilities/updateFirmwareDeps.m deleted file mode 100644 index fd34ccc..0000000 --- a/buildUtilities/updateFirmwareDeps.m +++ /dev/null @@ -1,16 +0,0 @@ -function updateFirmwareDeps(shareFolder) - -arguments - shareFolder {mustBeFolder} = getenv('firmwareSharePath') -end - -projObj = currentProject; - -% Copy firmware in local share folder to toolbox to facilitate distribution -if ~isempty(shareFolder) - copyfile(shareFolder,fullfile(projObj.RootFolder,'toolbox/dependencies/firmware/')); -else - error('Share folder not found. Firmware dependencies will not be packaged in toolbox.'); -end - -end \ No newline at end of file diff --git a/resources/project/_BcHeyeYYWxz6MENB98iTz25sSI/nWYhdJ9SIXhKqBMoaMa7pxo7Y9Ud.xml b/resources/project/_BcHeyeYYWxz6MENB98iTz25sSI/nWYhdJ9SIXhKqBMoaMa7pxo7Y9Ud.xml deleted file mode 100644 index 7a6326b..0000000 --- a/resources/project/_BcHeyeYYWxz6MENB98iTz25sSI/nWYhdJ9SIXhKqBMoaMa7pxo7Y9Ud.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/resources/project/_BcHeyeYYWxz6MENB98iTz25sSI/nWYhdJ9SIXhKqBMoaMa7pxo7Y9Up.xml b/resources/project/_BcHeyeYYWxz6MENB98iTz25sSI/nWYhdJ9SIXhKqBMoaMa7pxo7Y9Up.xml deleted file mode 100644 index 6f1dbc0..0000000 --- a/resources/project/_BcHeyeYYWxz6MENB98iTz25sSI/nWYhdJ9SIXhKqBMoaMa7pxo7Y9Up.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file From f4512ae2b2dff6c0c97e71935e9074738ec275d5 Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Sun, 27 Aug 2023 23:16:49 +0200 Subject: [PATCH 04/14] Update main.yml --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c70749b..2b4155e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -84,6 +84,7 @@ jobs: github_token: ${{ secrets.REPO_READ_TOKEN }} workflow: main.yml repo: sync2brain/bossdevice-firmware + branch: main search_artifacts: true name: bossdevice-firmware-${{ matrix.matlabVer }} path: toolbox/dependencies/firmware/${{ matrix.matlabVer }} From f01e447f48f8f15cec9b2d4d8b93ee7eb23a16d1 Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Mon, 28 Aug 2023 10:00:48 +0200 Subject: [PATCH 05/14] Update main.yml --- .github/workflows/main.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2b4155e..2a8fca9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -101,3 +101,14 @@ jobs: action_fail: true files: | results.xml + + uploadFirmwareDir: + runs-on: matlab + needs: test + steps: + - name: Upload firmware directory + uses: actions/upload-artifact@v3 + with: + name: firmwareFolder + path: toolbox/dependencies/firmware + if-no-files-found: error From 48a86d147d3d99a792a3ffad5b81f8f935dcc414 Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Mon, 28 Aug 2023 10:11:37 +0200 Subject: [PATCH 06/14] Update main.yml --- .github/workflows/main.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2a8fca9..2b4155e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -101,14 +101,3 @@ jobs: action_fail: true files: | results.xml - - uploadFirmwareDir: - runs-on: matlab - needs: test - steps: - - name: Upload firmware directory - uses: actions/upload-artifact@v3 - with: - name: firmwareFolder - path: toolbox/dependencies/firmware - if-no-files-found: error From 0f433048be3165b57ce9eee7b39f578edc51ffd6 Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Mon, 28 Aug 2023 10:22:08 +0200 Subject: [PATCH 07/14] Update release.yml --- .github/workflows/release.yml | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6ac7ed5..f8f33d3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,9 +10,35 @@ on: - 'v*' jobs: - package: + prepareFirmwareDir: + runs-on: self-hosted + strategy: + matrix: + matlabVer: [R2023a] # List of MATLAB releases to test + + steps: + - name: Download firmware artifact + uses: dawidd6/action-download-artifact@v2 + with: + github_token: ${{ secrets.REPO_READ_TOKEN }} + workflow: main.yml + repo: sync2brain/bossdevice-firmware + branch: main + search_artifacts: true + name: bossdevice-firmware-${{ matrix.matlabVer }} + path: firmware/${{ matrix.matlabVer }} + if_no_artifact_found: fail + + - name: Upload firmware folder + uses: actions/upload-artifact@v3 + with: + name: firmware-${{ matrix.matlabVer }} + path: firmware/${{ matrix.matlabVer }} + + packageToolbox: # The type of runner that the job will run on runs-on: matlab + needs: prepareFirmwareDir steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it @@ -28,6 +54,11 @@ jobs: path: | buildUtilities/.buildtool + - name: Download firmware folder + uses: actions/download-artifact@v2 + with: + path: toolbox/dependencies/firmware + - name: Run MATLAB command run: | &"$env:ProgramFiles\MATLAB\$env:MATLAB_VER\bin\matlab.exe" -batch "openProject(pwd); cd('buildUtilities'); buildtool test('bdConnected') package('${{ github.ref_name }}','${{ github.actor }}')" From c74bd23631317005f1e1b17de8420d8b6a32ebcc Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Mon, 28 Aug 2023 10:31:09 +0200 Subject: [PATCH 08/14] Update release.yml --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f8f33d3..c11e475 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,7 @@ jobs: uses: actions/upload-artifact@v3 with: name: firmware-${{ matrix.matlabVer }} - path: firmware/${{ matrix.matlabVer }} + path: firmware packageToolbox: # The type of runner that the job will run on From 84c034ccb571bbf54c3f6c128064492b0d7457bb Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Mon, 28 Aug 2023 10:37:40 +0200 Subject: [PATCH 09/14] Update release.yml --- .github/workflows/release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c11e475..94f9803 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,7 +33,6 @@ jobs: uses: actions/upload-artifact@v3 with: name: firmware-${{ matrix.matlabVer }} - path: firmware packageToolbox: # The type of runner that the job will run on @@ -57,7 +56,7 @@ jobs: - name: Download firmware folder uses: actions/download-artifact@v2 with: - path: toolbox/dependencies/firmware + path: toolbox/dependencies - name: Run MATLAB command run: | From d69650529b87f4b670f93231d91654322de8b3a2 Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Mon, 28 Aug 2023 10:40:31 +0200 Subject: [PATCH 10/14] Always assert results success. --- buildUtilities/testTask.m | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/buildUtilities/testTask.m b/buildUtilities/testTask.m index f6c443b..d55f0fe 100644 --- a/buildUtilities/testTask.m +++ b/buildUtilities/testTask.m @@ -33,11 +33,7 @@ runner.addPlugin(XMLPlugin.producingJUnitFormat(fullfile(projObj.RootFolder,'results.xml'))); results = runner.run(suite); - -% CI workflows evaluate test success from Test Report -if ~batchStartupOptionUsed - results.assertSuccess; -end +results.assertSuccess; end From d68517b3a98305d63d7fd4012a43afd77bdc7f2a Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Mon, 28 Aug 2023 10:44:10 +0200 Subject: [PATCH 11/14] Update release.yml --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 94f9803..0272ca2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,6 +33,8 @@ jobs: uses: actions/upload-artifact@v3 with: name: firmware-${{ matrix.matlabVer }} + path: . + if-no-files-found: error packageToolbox: # The type of runner that the job will run on From 506bbf2e468e904bba33bd10d2568feb245d0d77 Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Mon, 28 Aug 2023 10:59:33 +0200 Subject: [PATCH 12/14] Update release.yml --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0272ca2..77943d6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,14 +26,14 @@ jobs: branch: main search_artifacts: true name: bossdevice-firmware-${{ matrix.matlabVer }} - path: firmware/${{ matrix.matlabVer }} + path: temp/firmware/${{ matrix.matlabVer }} if_no_artifact_found: fail - name: Upload firmware folder uses: actions/upload-artifact@v3 with: name: firmware-${{ matrix.matlabVer }} - path: . + path: temp if-no-files-found: error packageToolbox: From b0a3668271d1958b35597edb82d97894b8371ea2 Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Mon, 28 Aug 2023 12:39:32 +0200 Subject: [PATCH 13/14] Update release.yml --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 77943d6..09c0331 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,7 +32,7 @@ jobs: - name: Upload firmware folder uses: actions/upload-artifact@v3 with: - name: firmware-${{ matrix.matlabVer }} + name: firmware/${{ matrix.matlabVer }} path: temp if-no-files-found: error From bc48c1b66939a947e583942918fb0326dd9c653b Mon Sep 17 00:00:00 2001 From: Pablo Romero Date: Mon, 28 Aug 2023 12:45:50 +0200 Subject: [PATCH 14/14] Update release.yml --- .github/workflows/release.yml | 41 ++++++++++------------------------- 1 file changed, 11 insertions(+), 30 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 09c0331..9292c40 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,36 +10,9 @@ on: - 'v*' jobs: - prepareFirmwareDir: - runs-on: self-hosted - strategy: - matrix: - matlabVer: [R2023a] # List of MATLAB releases to test - - steps: - - name: Download firmware artifact - uses: dawidd6/action-download-artifact@v2 - with: - github_token: ${{ secrets.REPO_READ_TOKEN }} - workflow: main.yml - repo: sync2brain/bossdevice-firmware - branch: main - search_artifacts: true - name: bossdevice-firmware-${{ matrix.matlabVer }} - path: temp/firmware/${{ matrix.matlabVer }} - if_no_artifact_found: fail - - - name: Upload firmware folder - uses: actions/upload-artifact@v3 - with: - name: firmware/${{ matrix.matlabVer }} - path: temp - if-no-files-found: error - packageToolbox: # The type of runner that the job will run on runs-on: matlab - needs: prepareFirmwareDir steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it @@ -55,10 +28,18 @@ jobs: path: | buildUtilities/.buildtool - - name: Download firmware folder - uses: actions/download-artifact@v2 + # Download firmware mldatx file from bossdevice-firmware. Must create a step for every MATLAB release to add + - name: Download R2023a firmware artifact + uses: dawidd6/action-download-artifact@v2 with: - path: toolbox/dependencies + github_token: ${{ secrets.REPO_READ_TOKEN }} + workflow: main.yml + repo: sync2brain/bossdevice-firmware + branch: main + search_artifacts: true + name: bossdevice-firmware-R2023a + path: toolbox/dependencies/firmware + if_no_artifact_found: fail - name: Run MATLAB command run: |