1- 
21name : build-all 
32
43on :
@@ -22,11 +21,33 @@ jobs:
2221          fetch-depth : 0 
2322          submodules : true 
2423
24+       - name : Calculate version number and set OOLITE_VERSION 
25+         id : version 
26+         run : | 
27+           set -x 
28+           cd oolite 
29+           # Build version string, 
30+           # taking into account that we may have just two digits 
31+           VERSION=$(cat src/Cocoa/oolite-version.xcconfig | cut -d '=' -f 2) 
32+           VER_MAJ=$(echo ${VERSION} | cut -d. -f1) 
33+           VER_MIN=$(echo ${VERSION} | cut -d. -f2) 
34+           VER_REV=$(echo ${VERSION} | cut -d. -f3) 
35+           if [ "" == "${VER_REV}" ] 
36+           then 
37+             VER_REV="0" 
38+           fi 
39+           VER_DATE=$(date +%y%m%d) 
40+           VER_GITREV=$(git rev-list --count HEAD) 
41+           VER_GITHASH=$(git rev-parse --short=7 HEAD) 
42+           VER="${VER_MAJ}.${VER_MIN}.${VER_REV}.${VER_GITREV}-${VER_DATE}-${VER_GITHASH}" 
43+           echo "OOLITE_VERSION=${VER}" >> "$GITHUB_OUTPUT" 
44+           echo "OOLITE_VERSION=${VER}" >> Doc/OOLITE_VERSION.txt 
45+ 
2546name : generate PDFs 
2647        run : | 
2748          find oolite/Doc -name "*.odt" -exec soffice --headless --convert-to pdf:"writer_pdf_Export" --outdir oolite/Doc {} \; 
28-           zip oolite-doc.zip oolite/Doc/*.pdf 
29-            
49+           zip oolite-doc.zip oolite/Doc/*.pdf oolite/Doc/OOLITE_VERSION.txt  
50+ 
3051name : Archive generated documentation 
3152        uses : actions/upload-artifact@v3 
3253        with :
4061    needs : [common-steps] 
4162    steps :
4263      # # This is for debugging only and helps developing the workflow.
43-       # - name: Environment Variables
64+       #   - name: Environment Variables
4465      #   run: |
4566      #     printenv | sort
4667
6182        with :
6283          name : oolite-doc 
6384          path : artifacts 
64-            
85+ 
6586      - name : Extract PDFs 
6687        run : | 
6788          unzip -u artifacts/oolite-doc.zip 
@@ -70,15 +91,15 @@ jobs:
7091      - name : show filesystem before build 
7192        run : | 
7293          find . -not -path "./oolite/deps/Windows-deps/*" -not -path "./oolite/Mac-specific/*" -not -path "./oolite/.git/*" 
73-        
94+ 
7495name : compiling up to installer script (.run file) 
7596        run : | 
7697          cd oolite 
7798          source /usr/share/GNUstep/Makefiles/GNUstep.sh 
7899          make -f Makefile pkg-posix-nightly HOST_ARCH=$(uname -m) 
79-            
100+ 
80101# # This is for debugging only and helps developing the workflow.
81-       # - name: show filesystem after build
102+       #   - name: show filesystem after build
82103      #   run: |
83104      #     find . -not -path "./oolite/Mac-specific/*"  -not -path "./oolite/deps/Windows-deps/*" -not -path "./oolite/tests/*" -not -path "./oolite/.git/*" -not -path "./oolite/deps/mozilla/*"
84105
@@ -91,34 +112,34 @@ jobs:
91112        run : | 
92113          NAME=$(basename oolite-nightly/oolite-*.run .run) 
93114          tar cvfz ${NAME}.tgz -C oolite-nightly . 
94-        
115+ 
95116#  This is for debugging only and helps developing the workflow.
96117      - name : show filesystem after installer 
97118        run : | 
98119          find . -not -path "./oolite/Mac-specific/*" -not -path "./oolite/deps/*" -not -path "./oolite/tests/*" -not -path "./oolite/.git/*" 
99-            
120+ 
100121name : Archive build tar ball 
101122        uses : actions/upload-artifact@v3 
102123        with :
103124          name : oolite-linux-nightly 
104125          path : | 
105126            oolite-*.tgz 
106127retention-days : 5 
107-            
128+ 
108129
109130  build-windows :
110131    runs-on : windows-latest 
111132    needs : [common-steps] 
112133    steps :
113134      # # This is for debugging only and helps developing the workflow.
114-       # - name: Environment Variables
135+       #   - name: Environment Variables
115136      #   run: |
116137      #     Get-ChildItem Env: | Sort Name
117138
118139      - name : Checkout DevelopmentEnvironment 
119140        uses : actions/checkout@v3 
120141        with :
121-           repository :   OoliteProject/oolite-windows-build-env 
142+           repository : OoliteProject/oolite-windows-build-env 
122143          path : DevelopmentEnvironment 
123144
124145      - name : Checkout Oolite 
@@ -133,7 +154,7 @@ jobs:
133154        with :
134155          name : oolite-doc 
135156          path : artifacts 
136-            
157+ 
137158      - name : Extract PDFs 
138159        run : | 
139160          unzip -u artifacts/oolite-doc.zip 
@@ -147,7 +168,7 @@ jobs:
147168name : Compile 
148169        shell : cmd 
149170        run : D:\a\oolite\oolite\DevelopmentEnvironment\gcc\Msys_x2\1.0\msys.cmd 
150-            
171+ 
151172      #  check http://aegidian.org/bb/viewtopic.php?p=281821#p281821
152173      #  this is for debug only; it creates huge logs and takes a long time to execute, yet you never know when you need it
153174      - name : check filesystem 
@@ -164,6 +185,7 @@ jobs:
164185
165186  build-doxygen :
166187    runs-on : ubuntu-latest 
188+     needs : [common-steps] 
167189    steps :
168190      - name : Checkout Oolite 
169191        uses : actions/checkout@v3 
@@ -172,24 +194,45 @@ jobs:
172194          fetch-depth : 0 
173195          submodules : true 
174196
197+       - name : Download artifacts 
198+         uses : actions/download-artifact@v3 
199+         with :
200+           name : oolite-doc 
201+           path : artifacts 
202+ 
203+       - name : Extract artifacts 
204+         run : | 
205+           unzip -u artifacts/oolite-doc.zip 
206+ 
207+ name : set version 
208+         id : version 
209+         run : | 
210+           OOLITE_VERSION=$(cat oolite/Doc/OOLITE_VERSION.txt | cut -d= -f2) 
211+           echo "OOLITE_VERSION=${OOLITE_VERSION}" >> "$GITHUB_OUTPUT" 
212+           sed -i -e "/PROJECT_NUMBER\s*=/ s/=.*/=${OOLITE_VERSION}/" oolite/Doxyfile 
213+           cat oolite/Doxyfile 
214+ 
175215name : Run doxygen 
176216        uses : 
mattnotmitt/[email protected]   177217        with :
178218          working-directory : oolite 
219+         #   OOLITE_VERSION: ${{ steps.version.outputs.OOLITE_VERSION }}
179220
180221      # # This is for debugging only and helps developing the workflow.
181-       # - name: Environment Variables 1
222+       #   - name: Environment Variables 1
182223      #   run: |
183224      #     printenv | sort
184225      #     find . -not -path "./oolite/deps/*" -not -path "./oolite/Mac-specific/*" -not -path "./oolite/.git/*"
185226
186227      - name : create tar ball 
187228        run : | 
188-           tar cvfz oolite-apidoc.tgz -C oolite doxygen 
229+           tar cvfz oolite-apidoc-${{ steps.version.outputs.OOLITE_VERSION }}.tgz -C oolite doxygen 
230+ 
189231#  This is for debugging only and helps developing the workflow.
190232      - name : Environment Variables 2 
191233        run : | 
192234          find . -not -path "./oolite/deps/*" -not -path "./oolite/Mac-specific/*" -not -path "./oolite/.git/*" 
235+ 
193236name : Archive build tar ball 
194237        uses : actions/upload-artifact@v3 
195238        with :
@@ -203,7 +246,7 @@ jobs:
203246    runs-on : ubuntu-latest 
204247    steps :
205248      # # This is for debugging only and helps developing the workflow.
206-       # - name: Environment Variables
249+       #   - name: Environment Variables
207250      #   run: |
208251      #     printenv | sort
209252
@@ -212,11 +255,32 @@ jobs:
212255        with :
213256          path : artifacts 
214257
258+       - name : Extract artifacts 
259+         run : | 
260+           unzip -u artifacts/oolite-doc.zip 
261+ 
262+ name : set version 
263+         id : version 
264+         run : | 
265+           OOLITE_VERSION=$(cat oolite/Doc/OOLITE_VERSION.txt | cut -d= -f2) 
266+ 
215267#  This is for debugging only and helps developing the workflow.
216268      - name : show filesystem after download 
217269        run : | 
218270          find . 
219-            
271+ 
272+ name : Remove old prereleases 
273+       if : github.ref != 'refs/heads/master' 
274+ 275+       with :
276+         # repo: <owner>/<repoName> # defaults to current repo
277+         keep_latest : 7 
278+         # delete_tag_pattern: v\d+\.\d+\.\d+-.*
279+         delete_type : ' prerelease' 
280+         # delete_branch: '${{ github.ref_name }}'
281+       env :
282+         GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} 
283+ 
220284      #  For changes on master branch, create a new release.
221285      #  It should move the 'latest' tag automatically.
222286      - name : Create Release 
@@ -225,9 +289,10 @@ jobs:
225289        uses : " marvinpinto/action-automatic-releases@latest" 
226290        with :
227291          repo_token : " ${{ secrets.GITHUB_TOKEN }}" 
228-           automatic_release_tag : " latest" 
292+           #  automatic_release_tag: "latest"
293+           automatic_release_tag : " ${{ steps.version.outputs.OOLITE_VERSION }}" 
229294          prerelease : true 
230-           title : " Oolite Nightly " 
295+           title : " Oolite ${{ steps.version.outputs.OOLITE_VERSION }} " 
231296          files : | 
232297            artifacts/oolite-documentation-nightly/oolite-*.tgz 
233298            artifacts/oolite-linux-nightly/oolite-*.tgz 
0 commit comments