Skip to content

Commit 13317e7

Browse files
Use GitHub cache instead of FTP to use OpenDDS artifacts within pull request and Release workflows (#43)
1 parent 8e42657 commit 13317e7

File tree

3 files changed

+463
-106
lines changed

3 files changed

+463
-106
lines changed

.github/workflows/build.yaml

Lines changed: 59 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88
push:
99
# only trigger on branches, not on tags
1010
branches: '**'
11-
11+
1212
# This workflow contains two jobs called "check_opendds", "build_opendds_windows", "check_changes", "build_ddm_windows"
1313
jobs:
1414
# Verify if a build is needed
@@ -20,18 +20,27 @@ jobs:
2020
steps:
2121
- name: Checkout code
2222
uses: actions/checkout@v3
23+
# with:
24+
# submodules: 'true'
25+
26+
- uses: actions/cache/restore@v3
27+
id: cache
2328
with:
24-
submodules: 'true'
25-
26-
- name: Exists OpenDDS
27-
id: existsOpenDDS
28-
continue-on-error: true
29-
run: |
30-
python $GITHUB_WORKSPACE/third_party/CommonTools/scripts/utilsftp.py -c check -s ${{ secrets.FTP_STORE_SITE }} -u ${{ secrets.FTP_STORE_USER }} -p ${{ secrets.FTP_STORE_PASSWORD }} -r OpenDDS_Build_3.25.zip -l $GITHUB_WORKSPACE/OpenDDS_Build_3.25.zip
29+
lookup-only: true
30+
enableCrossOsArchive: true
31+
path: ./OutputOpenDDS/
32+
key: OpenDDS_3.25
33+
34+
# - name: Exists OpenDDS
35+
# id: existsOpenDDS
36+
# continue-on-error: true
37+
# run: |
38+
# python $GITHUB_WORKSPACE/third_party/CommonTools/scripts/utilsftp.py -c check -s ${{ secrets.FTP_STORE_SITE }} -u ${{ secrets.FTP_STORE_USER }} -p ${{ secrets.FTP_STORE_PASSWORD }} -r OpenDDS_Build_3.25.zip -l $GITHUB_WORKSPACE/OpenDDS_Build_3.25.zip
3139

3240
- name: If failed we need to rebuild artifact
3341
id: check_existsOpenDDS
34-
if: ${{ steps.existsOpenDDS.outcome == 'failure' }}
42+
if: steps.cache.outputs.cache-hit != 'true'
43+
# if: ${{ steps.existsOpenDDS.outcome == 'failure' }}
3544
run: echo "build_opendds=true" >> $GITHUB_OUTPUT
3645

3746
build_opendds_windows:
@@ -124,21 +133,31 @@ jobs:
124133
125134
- name: Prepare for packaging OpenDDS Binaries and PDB
126135
run: |
127-
Compress-Archive -Path .\Output\* -DestinationPath .\OpenDDS_Build_3.25.zip
128-
Compress-Archive -Path .\OutputPdb\* -DestinationPath .\OpenDDS_PDB_Build_3.25.zip
136+
New-Item -Path .\OutputOpenDDS -ItemType directory
137+
Compress-Archive -Path .\Output\* -DestinationPath .\OutputOpenDDS\OpenDDS_Build_3.25.zip
138+
Compress-Archive -Path .\OutputPdb\* -DestinationPath .\OutputOpenDDS\OpenDDS_PDB_Build_3.25.zip
129139
130140
- name: Prepare for packaging OpenDDS Headers
131141
shell: cmd
132142
run: |
133-
7z a .\OpenDDS_Headers_3.25.zip .\third_party\OpenDDS\*.h -r
134-
7z u .\OpenDDS_Headers_3.25.zip .\third_party\OpenDDS\*.inl -r
143+
7z a .\OutputOpenDDS\OpenDDS_Headers_3.25.zip .\third_party\OpenDDS\*.h -r
144+
7z u .\OutputOpenDDS\OpenDDS_Headers_3.25.zip .\third_party\OpenDDS\*.inl -r
145+
146+
- name: Save OpenDDS in cache
147+
uses: actions/cache/save@v3
148+
with:
149+
enableCrossOsArchive: true
150+
path: ./OutputOpenDDS/
151+
key: OpenDDS_3.25
135152

136153
- name: Upload OpenDDS
154+
if: ${{ github.repository_owner == 'masesgroup'}} # do not upload any artifact outside main repo
155+
continue-on-error: true
137156
shell: cmd
138157
run: |
139-
python %GITHUB_WORKSPACE%\third_party\CommonTools\scripts\utilsftp.py -c upload -s ${{ secrets.FTP_STORE_SITE }} -u ${{ secrets.FTP_STORE_USER }} -p ${{ secrets.FTP_STORE_PASSWORD }} -r OpenDDS_Build_3.25.zip -l %GITHUB_WORKSPACE%\OpenDDS_Build_3.25.zip
140-
python %GITHUB_WORKSPACE%\third_party\CommonTools\scripts\utilsftp.py -c upload -s ${{ secrets.FTP_STORE_SITE }} -u ${{ secrets.FTP_STORE_USER }} -p ${{ secrets.FTP_STORE_PASSWORD }} -r OpenDDS_PDB_Build_3.25.zip -l %GITHUB_WORKSPACE%\OpenDDS_PDB_Build_3.25.zip
141-
python %GITHUB_WORKSPACE%\third_party\CommonTools\scripts\utilsftp.py -c upload -s ${{ secrets.FTP_STORE_SITE }} -u ${{ secrets.FTP_STORE_USER }} -p ${{ secrets.FTP_STORE_PASSWORD }} -r OpenDDS_Headers_3.25.zip -l %GITHUB_WORKSPACE%\OpenDDS_Headers_3.25.zip
158+
python %GITHUB_WORKSPACE%\third_party\CommonTools\scripts\utilsftp.py -c upload -s ${{ secrets.FTP_STORE_SITE }} -u ${{ secrets.FTP_STORE_USER }} -p ${{ secrets.FTP_STORE_PASSWORD }} -r OpenDDS_Build_3.25.zip -l %GITHUB_WORKSPACE%\OutputOpenDDS\OpenDDS_Build_3.25.zip
159+
python %GITHUB_WORKSPACE%\third_party\CommonTools\scripts\utilsftp.py -c upload -s ${{ secrets.FTP_STORE_SITE }} -u ${{ secrets.FTP_STORE_USER }} -p ${{ secrets.FTP_STORE_PASSWORD }} -r OpenDDS_PDB_Build_3.25.zip -l %GITHUB_WORKSPACE%\OutputOpenDDS\OpenDDS_PDB_Build_3.25.zip
160+
python %GITHUB_WORKSPACE%\third_party\CommonTools\scripts\utilsftp.py -c upload -s ${{ secrets.FTP_STORE_SITE }} -u ${{ secrets.FTP_STORE_USER }} -p ${{ secrets.FTP_STORE_PASSWORD }} -r OpenDDS_Headers_3.25.zip -l %GITHUB_WORKSPACE%\OutputOpenDDS\OpenDDS_Headers_3.25.zip
142161
env:
143162
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
144163

@@ -193,7 +212,7 @@ jobs:
193212
submodules: 'true'
194213

195214
- name: Cache local Maven repository
196-
uses: actions/cache@v3.3.1
215+
uses: actions/cache@v3
197216
with:
198217
path: ~/.m2/repository
199218
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
@@ -254,27 +273,35 @@ jobs:
254273
cd third_party\OpenDDS
255274
configure
256275
257-
- name: Download OpenDDS Binaries
258-
shell: cmd
259-
run: |
260-
python %GITHUB_WORKSPACE%\third_party\CommonTools\scripts\utilsftp.py -c download -s ${{ secrets.FTP_STORE_SITE }} -u ${{ secrets.FTP_STORE_USER }} -p ${{ secrets.FTP_STORE_PASSWORD }} -r OpenDDS_Build_3.25.zip -l %GITHUB_WORKSPACE%\OpenDDS_Build_3.25.zip
261-
env:
262-
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
263-
264-
- name: Download OpenDDS Headers
265-
shell: cmd
266-
run: |
267-
python %GITHUB_WORKSPACE%\third_party\CommonTools\scripts\utilsftp.py -c download -s ${{ secrets.FTP_STORE_SITE }} -u ${{ secrets.FTP_STORE_USER }} -p ${{ secrets.FTP_STORE_PASSWORD }} -r OpenDDS_Headers_3.25.zip -l %GITHUB_WORKSPACE%\OpenDDS_Headers_3.25.zip
268-
env:
269-
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
276+
- name: Restore OpenDDS from cache
277+
uses: actions/cache/restore@v3
278+
with:
279+
fail-on-cache-miss: true
280+
enableCrossOsArchive: true
281+
path: ./OutputOpenDDS/
282+
key: OpenDDS_3.25
283+
284+
# - name: Download OpenDDS Binaries
285+
# shell: cmd
286+
# run: |
287+
# python %GITHUB_WORKSPACE%\third_party\CommonTools\scripts\utilsftp.py -c download -s ${{ secrets.FTP_STORE_SITE }} -u ${{ secrets.FTP_STORE_USER }} -p ${{ secrets.FTP_STORE_PASSWORD }} -r OpenDDS_Build_3.25.zip -l %GITHUB_WORKSPACE%\OpenDDS_Build_3.25.zip
288+
# env:
289+
# GITHUB_WORKSPACE: $GITHUB_WORKSPACE
290+
#
291+
# - name: Download OpenDDS Headers
292+
# shell: cmd
293+
# run: |
294+
# python %GITHUB_WORKSPACE%\third_party\CommonTools\scripts\utilsftp.py -c download -s ${{ secrets.FTP_STORE_SITE }} -u ${{ secrets.FTP_STORE_USER }} -p ${{ secrets.FTP_STORE_PASSWORD }} -r OpenDDS_Headers_3.25.zip -l %GITHUB_WORKSPACE%\OpenDDS_Headers_3.25.zip
295+
# env:
296+
# GITHUB_WORKSPACE: $GITHUB_WORKSPACE
270297

271298
- name: Prepare OpenDDS Binaries
272299
run: |
273-
Expand-Archive -LiteralPath '.\OpenDDS_Build_3.25.zip' -DestinationPath .\Output -Force
300+
Expand-Archive -LiteralPath '.\OutputOpenDDS\OpenDDS_Build_3.25.zip' -DestinationPath .\Output -Force
274301
275302
- name: Prepare OpenDDS Headers
276303
run: |
277-
Expand-Archive -LiteralPath '.\OpenDDS_Headers_3.25.zip' -DestinationPath .\third_party\OpenDDS -Force
304+
Expand-Archive -LiteralPath '.\OutputOpenDDS\OpenDDS_Headers_3.25.zip' -DestinationPath .\third_party\OpenDDS -Force
278305
279306
- name: Move OpenDDS x64
280307
shell: cmd

0 commit comments

Comments
 (0)