18
18
ModelName : counting-logic
19
19
ModelExtension : qeax
20
20
ReviewSessionURL : ' https://nexus.lieberlieber.com/repository/lemontree-session'
21
- LemonTreePipelineToolsRemovePrerenderedDiagramsExecutable : >-
22
- https://nexus.lieberlieber.com/repository/lemontree-pipeline-tools/LemonTree.Pipeline.Tools.RemovePrerenderedDiagrams.exe
21
+ LemonTreePipelineToolsRemovePrerenderedDiagramsExecutable : https://nexus.lieberlieber.com/repository/lemontree-pipeline-tools/LemonTree.Pipeline.Tools.RemovePrerenderedDiagrams.exe
23
22
jobs :
24
23
AutosarUml :
25
24
defaults :
@@ -28,16 +27,35 @@ jobs:
28
27
runs-on : windows-latest
29
28
timeout-minutes : 15
30
29
steps :
31
- - uses : actions/checkout@v3
30
+ - uses : actions/checkout@v4
32
31
with :
32
+ ref : ${{ github.event.pull_request.head.ref }}
33
33
lfs : true
34
34
fetch-depth : 0
35
+ - uses : LieberLieber/setup-LemonTree.Automation@v1
36
+ id : GetLTA
37
+ with :
38
+ License : ' ${{secrets.LTALICENSE}}'
39
+ - name : Run IncQuery AUTOSAR-UML Bridge
40
+ uses : IncQueryLabs/incquery-suite-bridge-autosar-uml-action@v1
41
+ with :
42
+ arxml_folder_path : example-arxml
43
+ ea_model_file_path : ' counting-logic.qeax'
44
+ incquery_username : ' ${{ secrets.INCQUERY_USERNAME }}'
45
+ incquery_password : ' ${{ secrets.INCQUERY_PASSWORD }}'
46
+ license : ' ${{ secrets.INCQUERY_AUTOSAR_UML_INTEGRATION_LICENSE }}'
47
+ - name : Push updated model
48
+ run : |
49
+ git config --local user.name "Automatic Model Update"
50
+ git config --local user.email "username@users.noreply.github.com"
51
+ git add counting-logic.qeax
52
+ git commit -m "Automatic Model Update"
53
+ git push
35
54
- name : Get relevant commit IDs
36
55
id : CommitIds
37
- run : >
56
+ run : |
38
57
git fetch
39
- $baseId = git merge-base origin/$env:GITHUB_BASE_REF
40
- origin/$env:GITHUB_HEAD_REF
58
+ $baseId = git merge-base origin/$env:GITHUB_BASE_REF origin/$env:GITHUB_HEAD_REF
41
59
echo "::set-output name=baseCommitId::$baseId"
42
60
$sourceId = git show-ref --hash origin/$env:GITHUB_HEAD_REF
43
61
echo "::set-output name=sourceCommitId::$sourceId"
@@ -53,31 +71,27 @@ jobs:
53
71
uses : actions/github-script@v6
54
72
with :
55
73
result-encoding : string
56
- script : >
74
+ script : |
57
75
const repoName = context.payload.pull_request.base.repo.name
58
76
const prNumber = context.payload.pull_request.number
59
77
const baseSHA = '${{steps.CommitIds.outputs.targetCommitId}}'
60
78
const headSHA = '${{steps.CommitIds.outputs.sourceCommitId}}'
61
- const filename = [repoName, 'PR', prNumber, baseSHA,
62
- headSHA].join('-') + '.ltsfs'
79
+ const filename = [repoName, 'PR', prNumber, baseSHA, headSHA].join('-') + '.ltsfs'
63
80
console.log(`Filename will be: ${filename}`)
64
81
return filename
65
82
- name : Download base-commit file
66
83
id : baseDownload
67
- run : >
84
+ run : |
68
85
git fetch origin ${{steps.CommitIds.outputs.baseCommitId}}
69
- $pointer = git cat-file blob
70
- ${{steps.CommitIds.outputs.baseCommitId}}:${{env.ModelName}}.${{env.ModelExtension}}
71
- $sha = ($pointer[1] -split(":"))[1]
72
- if($sha -ne $null){
73
- $shaPart1 = $sha.Substring(0,2)
74
- $shaPart2 = $sha.Substring(2,2)
75
- echo "Model SHA: $sha"
76
- git cat-file --filters ${{steps.CommitIds.outputs.baseCommitId}}:${{env.ModelName}}.${{env.ModelExtension}} | Out-Null
77
- copy ".git\lfs\objects\$shaPart1\$shaPart2\$sha" "${{env.ModelName}}_base.${{env.ModelExtension}}"
86
+ $contents = git cat-file blob ${{steps.CommitIds.outputs.baseCommitId}}:${{env.ModelName}}.${{env.ModelExtension}}
87
+ echo $contents[1]
88
+ if($contents -ne $null){
89
+ echo "ps"
90
+ $contents | Out-File -FilePath "${{env.ModelName}}_base.${{env.ModelExtension}}"
78
91
echo "result=downloaded" >> $env:GITHUB_OUTPUT
79
92
}
80
- else{
93
+ else {
94
+ echo "no"
81
95
echo "result=notFound" >> $env:GITHUB_OUTPUT
82
96
}
83
97
- name : Post new model comment to PR
@@ -89,52 +103,23 @@ jobs:
89
103
issue_number: context.issue.number,
90
104
owner: context.repo.owner,
91
105
repo: context.repo.repo,
92
- body: `Model not found on base commit / fork-off point`
106
+ body: `Model not found on base commit or fork-off point`
93
107
})
94
- - name : Download source branch head file
108
+ - name : Download target file
95
109
if : steps.baseDownload.outputs.result == 'downloaded'
96
110
id : headDownload
97
- run : >
111
+ run : |
98
112
git fetch origin $env:GITHUB_HEAD_REF
99
- $pointer = git cat-file blob
100
- ${{steps.CommitIds.outputs.sourceCommitId}}":${{env.ModelName}}.${{env.ModelExtension}}"
101
- $sha = ($pointer[1] -split(":"))[1]
102
- $shaPart1 = $sha.Substring(0,2)
103
- $shaPart2 = $sha.Substring(2,2)
104
- echo "Model SHA: $sha"
105
- git cat-file --filters
106
- ${{steps.CommitIds.outputs.sourceCommitId}}":${{env.ModelName}}.${{env.ModelExtension}}"
107
- | Out-Null
108
- copy ".git\lfs\objects\$shaPart1\$shaPart2\$sha"
109
- "${{env.ModelName}}_head.${{env.ModelExtension}}"
110
- - uses : LieberLieber/setup-LemonTree.Automation@v1
111
- id : GetLTA
112
- with :
113
- License : ' ${{secrets.LTALICENSE}}'
114
- - name : Run IncQuery AUTOSAR-UML Bridge
115
- uses : IncQueryLabs/incquery-suite-bridge-autosar-uml-action@v1
116
- with :
117
- arxml_folder_path : example-arxml
118
- ea_model_file_path : ' counting-logic.qeax'
119
- incquery_username : ' ${{ secrets.INCQUERY_USERNAME }}'
120
- incquery_password : ' ${{ secrets.INCQUERY_PASSWORD }}'
121
- license : ' ${{ secrets.INCQUERY_AUTOSAR_UML_INTEGRATION_LICENSE }}'
122
- - name : Push updated model
123
- run : >
124
- git config --local user.name "Automatic Model Update"
125
- git config --local user.email "username@users.noreply.github.com"
126
- git add counting-logic.qeax
127
- git commit -m "Automatic Model Update"
128
- git push
113
+ $pointer = git cat-file blob ${{steps.CommitIds.outputs.targetCommitId}}":${{env.ModelName}}.${{env.ModelExtension}}"
114
+ $pointer | Out-File -FilePath "${{env.ModelName}}_target.${{env.ModelExtension}}"
129
115
- name : Check for merge conflicts
130
116
if : steps.baseDownload.outputs.result == 'downloaded'
131
117
id : mergeCheck
132
- run : >
133
- &"${{steps.GetLTA.outputs.LemonTreeAutomationExecutable}}" merge
134
- --base ${{env.ModelName}}_base.${{env.ModelExtension}} --theirs
135
- ${{env.ModelName}}.${{env.ModelExtension}} --mine
136
- ${{env.ModelName}}_head.${{env.ModelExtension}} --dryrun --sfs ${{
137
- steps.session_file.outputs.result }} --abortOnConflict true
118
+ run : |
119
+ Test-Path ${{env.ModelName}}_base.${{env.ModelExtension}}
120
+ Test-Path ${{env.ModelName}}_target.${{env.ModelExtension}}
121
+ Test-Path ${{env.ModelName}}.${{env.ModelExtension}}
122
+ &"${{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
138
123
echo "::set-output name=result::$LASTEXITCODE"
139
124
echo "Return code: $LASTEXITCODE"
140
125
if($LASTEXITCODE -eq 0){
@@ -164,7 +149,7 @@ jobs:
164
149
$mergecheckresult = ${{ steps.mergeCheck.outputs.result}}
165
150
if ($mergecheckresult -eq 0)
166
151
{
167
- $output = &'${{steps.GetLTA.outputs.LemonTreeAutomationExecutable}}' diff --theirs ${{env.ModelName}}_base .${{env.ModelExtension}} --mine ${{env.ModelName}}_head .${{env.ModelExtension}} --sfs ${{ steps.session_file.outputs.result }}
152
+ $output = &'${{steps.GetLTA.outputs.LemonTreeAutomationExecutable}}' diff --theirs ${{env.ModelName}}_target .${{env.ModelExtension}} --mine ${{env.ModelName}}.${{env.ModelExtension}} --sfs ${{ steps.session_file.outputs.result }}
168
153
echo $output
169
154
ForEach ($line in $($output -split "`r`n"))
170
155
{
0 commit comments