From 75a0a38d1c28c277365ad088e511645e82fb3142 Mon Sep 17 00:00:00 2001 From: Koltai Kadosa Date: Tue, 5 Dec 2023 15:05:35 +0100 Subject: [PATCH 01/13] Fix typo --- .github/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/README.md b/.github/README.md index c6dabe5..6883af5 100644 --- a/.github/README.md +++ b/.github/README.md @@ -76,4 +76,4 @@ Executes on each (re-)opening of and on each new commit in a pull-request. First Then, it pushes the updated EA model back to the originating branch, automatically keeping the two manifestations of the model in synch. Finally, it generates a review-session file, uploads it to artifactory and post a message in the pull request - containing conflict status and a link to the review session + containing conflict status and a link to the review session. From 9da924bb7ab9c35963bde7c35ceb945713b55300 Mon Sep 17 00:00:00 2001 From: Koltai Kadosa Date: Tue, 5 Dec 2023 15:07:07 +0100 Subject: [PATCH 02/13] Workflow test --- example-arxml/counting-logic.arxml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example-arxml/counting-logic.arxml b/example-arxml/counting-logic.arxml index dc195ea..b6fb746 100644 --- a/example-arxml/counting-logic.arxml +++ b/example-arxml/counting-logic.arxml @@ -19,7 +19,7 @@ /CountingLogic/Components/Counter - generatorWWWW + generator /CountingLogic/Components/CountAlterer @@ -31,7 +31,7 @@ /CountingLogic/Components/Counter/control - /CountingLogic/Components/Application/generatorWWWW + /CountingLogic/Components/Application/generator /CountingLogic/Components/CountAlterer/alterCount From fd0974a1d9f9d15259685d2cb3ecd9a0711afe46 Mon Sep 17 00:00:00 2001 From: Koltai Kadosa Date: Tue, 5 Dec 2023 15:18:14 +0100 Subject: [PATCH 03/13] Fix errors introduced in formatting --- .github/workflows/AutosarUmlActionExample.yml | 28 ++++++------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/.github/workflows/AutosarUmlActionExample.yml b/.github/workflows/AutosarUmlActionExample.yml index 7df66f6..a05af94 100644 --- a/.github/workflows/AutosarUmlActionExample.yml +++ b/.github/workflows/AutosarUmlActionExample.yml @@ -18,8 +18,7 @@ env: ModelName: counting-logic ModelExtension: qeax ReviewSessionURL: 'https://nexus.lieberlieber.com/repository/lemontree-session' - LemonTreePipelineToolsRemovePrerenderedDiagramsExecutable: >- - https://nexus.lieberlieber.com/repository/lemontree-pipeline-tools/LemonTree.Pipeline.Tools.RemovePrerenderedDiagrams.exe + LemonTreePipelineToolsRemovePrerenderedDiagramsExecutable: https://nexus.lieberlieber.com/repository/lemontree-pipeline-tools/LemonTree.Pipeline.Tools.RemovePrerenderedDiagrams.exe jobs: AutosarUml: defaults: @@ -36,8 +35,7 @@ jobs: id: CommitIds run: > git fetch - $baseId = git merge-base origin/$env:GITHUB_BASE_REF - origin/$env:GITHUB_HEAD_REF + $baseId = git merge-base origin/$env:GITHUB_BASE_REF origin/$env:GITHUB_HEAD_REF echo "::set-output name=baseCommitId::$baseId" $sourceId = git show-ref --hash origin/$env:GITHUB_HEAD_REF echo "::set-output name=sourceCommitId::$sourceId" @@ -58,16 +56,14 @@ jobs: const prNumber = context.payload.pull_request.number const baseSHA = '${{steps.CommitIds.outputs.targetCommitId}}' const headSHA = '${{steps.CommitIds.outputs.sourceCommitId}}' - const filename = [repoName, 'PR', prNumber, baseSHA, - headSHA].join('-') + '.ltsfs' + const filename = [repoName, 'PR', prNumber, baseSHA, headSHA].join('-') + '.ltsfs' console.log(`Filename will be: ${filename}`) return filename - name: Download base-commit file id: baseDownload run: > git fetch origin ${{steps.CommitIds.outputs.baseCommitId}} - $pointer = git cat-file blob - ${{steps.CommitIds.outputs.baseCommitId}}:${{env.ModelName}}.${{env.ModelExtension}} + $pointer = git cat-file blob ${{steps.CommitIds.outputs.baseCommitId}}:${{env.ModelName}}.${{env.ModelExtension}} $sha = ($pointer[1] -split(":"))[1] if($sha -ne $null){ $shaPart1 = $sha.Substring(0,2) @@ -96,17 +92,13 @@ jobs: id: headDownload run: > git fetch origin $env:GITHUB_HEAD_REF - $pointer = git cat-file blob - ${{steps.CommitIds.outputs.sourceCommitId}}":${{env.ModelName}}.${{env.ModelExtension}}" + $pointer = git cat-file blob ${{steps.CommitIds.outputs.sourceCommitId}}":${{env.ModelName}}.${{env.ModelExtension}}" $sha = ($pointer[1] -split(":"))[1] $shaPart1 = $sha.Substring(0,2) $shaPart2 = $sha.Substring(2,2) echo "Model SHA: $sha" - git cat-file --filters - ${{steps.CommitIds.outputs.sourceCommitId}}":${{env.ModelName}}.${{env.ModelExtension}}" - | Out-Null - copy ".git\lfs\objects\$shaPart1\$shaPart2\$sha" - "${{env.ModelName}}_head.${{env.ModelExtension}}" + git cat-file --filters ${{steps.CommitIds.outputs.sourceCommitId}}":${{env.ModelName}}.${{env.ModelExtension}}" | Out-Null + copy ".git\lfs\objects\$shaPart1\$shaPart2\$sha" "${{env.ModelName}}_head.${{env.ModelExtension}}" - uses: LieberLieber/setup-LemonTree.Automation@v1 id: GetLTA with: @@ -130,11 +122,7 @@ jobs: if: steps.baseDownload.outputs.result == 'downloaded' id: mergeCheck run: > - &"${{steps.GetLTA.outputs.LemonTreeAutomationExecutable}}" merge - --base ${{env.ModelName}}_base.${{env.ModelExtension}} --theirs - ${{env.ModelName}}.${{env.ModelExtension}} --mine - ${{env.ModelName}}_head.${{env.ModelExtension}} --dryrun --sfs ${{ - steps.session_file.outputs.result }} --abortOnConflict true + &"${{steps.GetLTA.outputs.LemonTreeAutomationExecutable}}" merge --base ${{env.ModelName}}_base.${{env.ModelExtension}} --theirs ${{env.ModelName}}.${{env.ModelExtension}} --mine ${{env.ModelName}}_head.${{env.ModelExtension}} --dryrun --sfs ${{ steps.session_file.outputs.result }} --abortOnConflict true echo "::set-output name=result::$LASTEXITCODE" echo "Return code: $LASTEXITCODE" if($LASTEXITCODE -eq 0){ From ec61d02e8d72c7a39603f4f2dbc74d814be78007 Mon Sep 17 00:00:00 2001 From: Koltai Kadosa Date: Tue, 5 Dec 2023 15:22:56 +0100 Subject: [PATCH 04/13] Fixed errors from formatting 2 --- .github/workflows/AutosarUmlActionExample.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/AutosarUmlActionExample.yml b/.github/workflows/AutosarUmlActionExample.yml index a05af94..c3be6b9 100644 --- a/.github/workflows/AutosarUmlActionExample.yml +++ b/.github/workflows/AutosarUmlActionExample.yml @@ -33,7 +33,7 @@ jobs: fetch-depth: 0 - name: Get relevant commit IDs id: CommitIds - run: > + run: | git fetch $baseId = git merge-base origin/$env:GITHUB_BASE_REF origin/$env:GITHUB_HEAD_REF echo "::set-output name=baseCommitId::$baseId" @@ -51,7 +51,7 @@ jobs: uses: actions/github-script@v6 with: result-encoding: string - script: > + script: | const repoName = context.payload.pull_request.base.repo.name const prNumber = context.payload.pull_request.number const baseSHA = '${{steps.CommitIds.outputs.targetCommitId}}' @@ -61,7 +61,7 @@ jobs: return filename - name: Download base-commit file id: baseDownload - run: > + run: | git fetch origin ${{steps.CommitIds.outputs.baseCommitId}} $pointer = git cat-file blob ${{steps.CommitIds.outputs.baseCommitId}}:${{env.ModelName}}.${{env.ModelExtension}} $sha = ($pointer[1] -split(":"))[1] @@ -90,7 +90,7 @@ jobs: - name: Download source branch head file if: steps.baseDownload.outputs.result == 'downloaded' id: headDownload - run: > + run: | git fetch origin $env:GITHUB_HEAD_REF $pointer = git cat-file blob ${{steps.CommitIds.outputs.sourceCommitId}}":${{env.ModelName}}.${{env.ModelExtension}}" $sha = ($pointer[1] -split(":"))[1] @@ -121,7 +121,7 @@ jobs: - name: Check for merge conflicts if: steps.baseDownload.outputs.result == 'downloaded' id: mergeCheck - run: > + run: | &"${{steps.GetLTA.outputs.LemonTreeAutomationExecutable}}" merge --base ${{env.ModelName}}_base.${{env.ModelExtension}} --theirs ${{env.ModelName}}.${{env.ModelExtension}} --mine ${{env.ModelName}}_head.${{env.ModelExtension}} --dryrun --sfs ${{ steps.session_file.outputs.result }} --abortOnConflict true echo "::set-output name=result::$LASTEXITCODE" echo "Return code: $LASTEXITCODE" From 12d103607593061fd91694fd87535d942dd3eeb8 Mon Sep 17 00:00:00 2001 From: Koltai Kadosa Date: Wed, 6 Dec 2023 13:37:29 +0100 Subject: [PATCH 05/13] Removed merge check --- .github/workflows/AutosarUmlActionExample.yml | 51 ++++--------------- 1 file changed, 9 insertions(+), 42 deletions(-) diff --git a/.github/workflows/AutosarUmlActionExample.yml b/.github/workflows/AutosarUmlActionExample.yml index 4c38569..ef3cf8b 100644 --- a/.github/workflows/AutosarUmlActionExample.yml +++ b/.github/workflows/AutosarUmlActionExample.yml @@ -112,54 +112,21 @@ jobs: git fetch origin $env:GITHUB_HEAD_REF $pointer = git cat-file blob ${{steps.CommitIds.outputs.targetCommitId}}":${{env.ModelName}}.${{env.ModelExtension}}" $pointer | Out-File -FilePath "${{env.ModelName}}_target.${{env.ModelExtension}}" - - name: Check for merge conflicts - if: steps.baseDownload.outputs.result == 'downloaded' - id: mergeCheck - run: | - Test-Path ${{env.ModelName}}_base.${{env.ModelExtension}} - Test-Path ${{env.ModelName}}_target.${{env.ModelExtension}} - Test-Path ${{env.ModelName}}.${{env.ModelExtension}} - &"${{steps.GetLTA.outputs.LemonTreeAutomationExecutable}}" merge --base ${{env.ModelName}}_base.${{env.ModelExtension}} --theirs ${{env.ModelName}}_target.${{env.ModelExtension}} --mine ${{env.ModelName}}.${{env.ModelExtension}} --dryrun --sfs ${{ steps.session_file.outputs.result }} --abortOnConflict true - echo "::set-output name=result::$LASTEXITCODE" - echo "Return code: $LASTEXITCODE" - if($LASTEXITCODE -eq 0){ - echo "No merge conflicts, setting message" - echo "message=[Review Session file](${{env.ReviewSessionURL}}/${{ steps.session_file.outputs.result }})\n:heavy_check_mark: **No merge conflicts in model**\n\nInstall [LemonTree 3.3+](https://www.lieberlieber.com/lemontree/en/) to open the Review Session file." >> $env:GITHUB_OUTPUT - } - elseif($LASTEXITCODE -eq 2){ - echo "Internal Error when diffing. Please report such errors to support@lieberlieber.com" - exit 2 - } - elseif($LASTEXITCODE -eq 3){ - echo "Merge conflicts, setting message" - echo "message=[Review Session file](${{env.ReviewSessionURL}}/${{ steps.session_file.outputs.result }})\n:x: **Please resolve merge conflicts in model first**\n\nInstall [LemonTree 3.3+](https://www.lieberlieber.com/lemontree/en/) to open the Review Session file." >> $env:GITHUB_OUTPUT - exit 0 - } - elseif($LASTEXITCODE -eq 6){ - echo "Licensing issue of LemonTree.Automation" - } - else{ - echo "Unknown error" - } - name: Create review session file id: checkSession run: | $Message = "${{ steps.mergeCheck.outputs.message }}" $sfsfilename ="${{ steps.session_file.outputs.result }}" - $mergecheckresult = ${{ steps.mergeCheck.outputs.result}} - if ($mergecheckresult -eq 0) + $output = &'${{steps.GetLTA.outputs.LemonTreeAutomationExecutable}}' diff --theirs ${{env.ModelName}}_target.${{env.ModelExtension}} --mine ${{env.ModelName}}.${{env.ModelExtension}} --sfs ${{ steps.session_file.outputs.result }} + echo $output + ForEach ($line in $($output -split "`r`n")) { - $output = &'${{steps.GetLTA.outputs.LemonTreeAutomationExecutable}}' diff --theirs ${{env.ModelName}}_target.${{env.ModelExtension}} --mine ${{env.ModelName}}.${{env.ModelExtension}} --sfs ${{ steps.session_file.outputs.result }} - echo $output - ForEach ($line in $($output -split "`r`n")) - { - if ($line.EndsWith('Found 0 different elements.')) - { - echo "No differences we don't need to publish the session file." - $Message = ":heavy_check_mark: **Model is identical!**" - $sfsfilename =""; - } - } + if ($line.EndsWith('Found 0 different elements.')) + { + echo "No differences we don't need to publish the session file." + $Message = ":heavy_check_mark: **Model is identical!**" + $sfsfilename =""; + } } echo "$Message" echo "SfsFileName=$sfsfilename" >> $env:GITHUB_OUTPUT From 66afd629b6c3d9dead62304232e8264b2acee65a Mon Sep 17 00:00:00 2001 From: Koltai Kadosa Date: Fri, 8 Dec 2023 09:25:36 +0100 Subject: [PATCH 06/13] Ultra sanity check --- DemoModel.eapx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DemoModel.eapx b/DemoModel.eapx index 078c3a7..63ff1c6 100644 --- a/DemoModel.eapx +++ b/DemoModel.eapx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:98c6345d391555e5b6de83e9391a9cff60a0dd0ed538ad82db7f01ac3aa53480 +oid sha256:4c7aa274966980c476d798e7e20fb739f60dad2892c2b60afa090dfde82140e9 size 3055616 From 7d9aad70e2b1bc2c6023d7b3bb6ea0ab8370496f Mon Sep 17 00:00:00 2001 From: Koltai Kadosa Date: Fri, 8 Dec 2023 09:52:44 +0100 Subject: [PATCH 07/13] Punc git merge in the face --- .github/workflows/AutosarUmlActionExample.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/AutosarUmlActionExample.yml b/.github/workflows/AutosarUmlActionExample.yml index 9e26145..7eac278 100644 --- a/.github/workflows/AutosarUmlActionExample.yml +++ b/.github/workflows/AutosarUmlActionExample.yml @@ -172,9 +172,8 @@ jobs: run: | $Message = "${{ steps.mergeCheck.outputs.message }}" $sfsfilename ="${{ steps.session_file.outputs.result }}" - $output = &'${{steps.GetLTA.outputs.LemonTreeAutomationExecutable}}' diff --theirs ${{env.ModelName}}_target.${{env.ModelExtension}} --mine ${{env.ModelName}}.${{env.ModelExtension}} --sfs ${{ steps.session_file.outputs.result }} - echo $output - ForEach ($line in $($output -split "`r`n")) + $mergecheckresult = ${{ steps.mergeCheck.outputs.result}} + if ($mergecheckresult -eq 0) { $output = &'${{steps.GetLTA.outputs.LemonTreeAutomationExecutable}}' diff --theirs ${{env.ModelName}}_base.${{env.ModelExtension}} --mine ${{env.ModelName}}_head.${{env.ModelExtension}} --sfs ${{ steps.session_file.outputs.result }} echo $output From 7191d100c74d4d9b3ac193570342448c66443eca Mon Sep 17 00:00:00 2001 From: Koltai Kadosa Date: Fri, 8 Dec 2023 09:55:19 +0100 Subject: [PATCH 08/13] Test 7 --- .github/workflows/AutosarUmlActionExample.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/AutosarUmlActionExample.yml b/.github/workflows/AutosarUmlActionExample.yml index 7eac278..6b86bb1 100644 --- a/.github/workflows/AutosarUmlActionExample.yml +++ b/.github/workflows/AutosarUmlActionExample.yml @@ -123,13 +123,6 @@ jobs: git cat-file --filters ${{steps.CommitIds.outputs.targetId}}":${{env.ModelName}}.${{env.ModelExtension}}" | Out-Null copy ".git\lfs\objects\$shaPart1\$shaPart2\$sha" "${{env.ModelName}}_head.${{env.ModelExtension}}" - # download Lemontree.Automation on a runner and setup the license - - uses: LieberLieber/setup-LemonTree.Automation@v1 - id: GetLTA - with: - License: ${{secrets.LTALICENSE}} - #ExeLocation &"${{steps.GetLTA.outputs.LemonTreeAutomationExecutable}}" - - name: Check for merge conflicts if: steps.baseDownload.outputs.result == 'downloaded' id: mergeCheck From d399c677e06203c07248007dfd567be7d7a40719 Mon Sep 17 00:00:00 2001 From: Automatic Model Update Date: Fri, 8 Dec 2023 08:59:05 +0000 Subject: [PATCH 09/13] Automatic Model Update --- DemoModel.eapx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DemoModel.eapx b/DemoModel.eapx index 63ff1c6..90c6cf0 100644 --- a/DemoModel.eapx +++ b/DemoModel.eapx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4c7aa274966980c476d798e7e20fb739f60dad2892c2b60afa090dfde82140e9 -size 3055616 +oid sha256:00260b8e9c3765965e4adb628e98adadba64f5e9adb4a6437722a2098718965e +size 3264512 From 757380c74c98d6f9d082a79261a2ad45389b35e3 Mon Sep 17 00:00:00 2001 From: Koltai Kadosa Date: Mon, 11 Dec 2023 14:22:45 +0100 Subject: [PATCH 10/13] Small change --- example-arxml/counting-logic.arxml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example-arxml/counting-logic.arxml b/example-arxml/counting-logic.arxml index b6fb746..a136ee5 100644 --- a/example-arxml/counting-logic.arxml +++ b/example-arxml/counting-logic.arxml @@ -19,7 +19,7 @@ /CountingLogic/Components/Counter - generator + generatorChange /CountingLogic/Components/CountAlterer @@ -31,7 +31,7 @@ /CountingLogic/Components/Counter/control - /CountingLogic/Components/Application/generator + /CountingLogic/Components/Application/generatorChange /CountingLogic/Components/CountAlterer/alterCount From 26dcae9ef00f51fa972ebd9286b019c492bebd4c Mon Sep 17 00:00:00 2001 From: Automatic Model Update Date: Mon, 18 Dec 2023 11:06:53 +0000 Subject: [PATCH 11/13] Automatic Model Update --- counting-logic.eapx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/counting-logic.eapx b/counting-logic.eapx index 25df08b..fbb659a 100644 --- a/counting-logic.eapx +++ b/counting-logic.eapx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9beec60b67e0025d75f57f90113f24e3d996adc44546d39e4ec2aeed4f6186c6 +oid sha256:7fd00c636649e31a07347c2c75ead1f7f48adcbd8a294d96be7c92d14a0aa617 size 2535424 From 134fd50d76e26a240733afd5de36dff1841cf92b Mon Sep 17 00:00:00 2001 From: Koltai Kadosa Date: Mon, 18 Dec 2023 12:51:19 +0100 Subject: [PATCH 12/13] Minimizing changes --- DemoModel.eapx | 4 ++-- example-arxml/counting-logic.arxml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DemoModel.eapx b/DemoModel.eapx index 90c6cf0..078c3a7 100644 --- a/DemoModel.eapx +++ b/DemoModel.eapx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:00260b8e9c3765965e4adb628e98adadba64f5e9adb4a6437722a2098718965e -size 3264512 +oid sha256:98c6345d391555e5b6de83e9391a9cff60a0dd0ed538ad82db7f01ac3aa53480 +size 3055616 diff --git a/example-arxml/counting-logic.arxml b/example-arxml/counting-logic.arxml index a136ee5..8582e05 100644 --- a/example-arxml/counting-logic.arxml +++ b/example-arxml/counting-logic.arxml @@ -19,7 +19,7 @@ /CountingLogic/Components/Counter - generatorChange + generatorW /CountingLogic/Components/CountAlterer @@ -31,7 +31,7 @@ /CountingLogic/Components/Counter/control - /CountingLogic/Components/Application/generatorChange + /CountingLogic/Components/Application/generatorW /CountingLogic/Components/CountAlterer/alterCount From 184f6a12d03c7ea5dd885988e0fbc6b2c7dbc33a Mon Sep 17 00:00:00 2001 From: Automatic Model Update Date: Mon, 18 Dec 2023 11:54:49 +0000 Subject: [PATCH 13/13] Automatic Model Update --- counting-logic.eapx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/counting-logic.eapx b/counting-logic.eapx index fbb659a..954bbd6 100644 --- a/counting-logic.eapx +++ b/counting-logic.eapx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7fd00c636649e31a07347c2c75ead1f7f48adcbd8a294d96be7c92d14a0aa617 +oid sha256:1eb3e233e32c3d8db3b5a9b684e8e6d6c55db7c6ba3e5157e31f646450076dda size 2535424