From 1a53bfd6c05cf4cf40d2be2eb7cf83f74c6201e0 Mon Sep 17 00:00:00 2001 From: hiran Date: Sat, 14 Oct 2023 21:44:05 +0200 Subject: [PATCH] calculate version number early in the build --- .github/workflows/build-all.yml | 76 +++++++++++++++++++++++++-------- Doxyfile | 2 +- 2 files changed, 59 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build-all.yml b/.github/workflows/build-all.yml index 95b68e45d..d56aa431e 100644 --- a/.github/workflows/build-all.yml +++ b/.github/workflows/build-all.yml @@ -1,4 +1,3 @@ - name: build-all on: @@ -22,11 +21,33 @@ jobs: fetch-depth: 0 submodules: true + - name: Calculate version number and set OOLITE_VERSION + id: version + run: | + set -x + cd oolite + # Build version string, + # taking into account that we may have just two digits + VERSION=$(cat src/Cocoa/oolite-version.xcconfig | cut -d '=' -f 2) + VER_MAJ=$(echo ${VERSION} | cut -d. -f1) + VER_MIN=$(echo ${VERSION} | cut -d. -f2) + VER_REV=$(echo ${VERSION} | cut -d. -f3) + if [ "" == "${VER_REV}" ] + then + VER_REV="0" + fi + VER_DATE=$(date +%y%m%d) + VER_GITREV=$(git rev-list --count HEAD) + VER_GITHASH=$(git rev-parse --short=7 HEAD) + VER="${VER_MAJ}.${VER_MIN}.${VER_REV}.${VER_GITREV}-${VER_DATE}-${VER_GITHASH}" + echo "OOLITE_VERSION=${VER}" >> "$GITHUB_OUTPUT" + echo "OOLITE_VERSION=${VER}" >> Doc/OOLITE_VERSION.txt + - name: generate PDFs run: | find oolite/Doc -name "*.odt" -exec soffice --headless --convert-to pdf:"writer_pdf_Export" --outdir oolite/Doc {} \; - zip oolite-doc.zip oolite/Doc/*.pdf - + zip oolite-doc.zip oolite/Doc/*.pdf oolite/Doc/OOLITE_VERSION.txt + - name: Archive generated documentation uses: actions/upload-artifact@v3 with: @@ -40,7 +61,7 @@ jobs: needs: [common-steps] steps: ## This is for debugging only and helps developing the workflow. - #- name: Environment Variables + # - name: Environment Variables # run: | # printenv | sort @@ -61,7 +82,7 @@ jobs: with: name: oolite-doc path: artifacts - + - name: Extract PDFs run: | unzip -u artifacts/oolite-doc.zip @@ -70,15 +91,15 @@ jobs: - name: show filesystem before build run: | find . -not -path "./oolite/deps/Windows-deps/*" -not -path "./oolite/Mac-specific/*" -not -path "./oolite/.git/*" - + - name: compiling up to installer script (.run file) run: | cd oolite source /usr/share/GNUstep/Makefiles/GNUstep.sh make -f Makefile pkg-posix-nightly HOST_ARCH=$(uname -m) - + ## This is for debugging only and helps developing the workflow. - #- name: show filesystem after build + # - name: show filesystem after build # run: | # 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/*" @@ -91,12 +112,12 @@ jobs: run: | NAME=$(basename oolite-nightly/oolite-*.run .run) tar cvfz ${NAME}.tgz -C oolite-nightly . - + # This is for debugging only and helps developing the workflow. - name: show filesystem after installer run: | find . -not -path "./oolite/Mac-specific/*" -not -path "./oolite/deps/*" -not -path "./oolite/tests/*" -not -path "./oolite/.git/*" - + - name: Archive build tar ball uses: actions/upload-artifact@v3 with: @@ -104,21 +125,21 @@ jobs: path: | oolite-*.tgz retention-days: 5 - + build-windows: runs-on: windows-latest needs: [common-steps] steps: ## This is for debugging only and helps developing the workflow. - #- name: Environment Variables + # - name: Environment Variables # run: | # Get-ChildItem Env: | Sort Name - name: Checkout DevelopmentEnvironment uses: actions/checkout@v3 with: - repository: OoliteProject/oolite-windows-build-env + repository: OoliteProject/oolite-windows-build-env path: DevelopmentEnvironment - name: Checkout Oolite @@ -133,7 +154,7 @@ jobs: with: name: oolite-doc path: artifacts - + - name: Extract PDFs run: | unzip -u artifacts/oolite-doc.zip @@ -147,7 +168,7 @@ jobs: - name: Compile shell: cmd run: D:\a\oolite\oolite\DevelopmentEnvironment\gcc\Msys_x2\1.0\msys.cmd - + # check http://aegidian.org/bb/viewtopic.php?p=281821#p281821 # this is for debug only; it creates huge logs and takes a long time to execute, yet you never know when you need it - name: check filesystem @@ -164,6 +185,7 @@ jobs: build-doxygen: runs-on: ubuntu-latest + needs: [common-steps] steps: - name: Checkout Oolite uses: actions/checkout@v3 @@ -172,13 +194,31 @@ jobs: fetch-depth: 0 submodules: true + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: oolite-doc + path: artifacts + + - name: Extract artifacts + run: | + unzip -u artifacts/oolite-doc.zip + + - name: get version + id: version + run: | + OOLITE_VERSION=$(cat oolite/Doc/OOLITE_VERSION.txt | cut -d= -f2) + echo "OOLITE_VERSION=${OOLITE_VERSION}" >> "$GITHUB_OUTPUT" + - name: Run doxygen uses: mattnotmitt/doxygen-action@v1.9.5 with: working-directory: oolite + args: --help + # OOLITE_VERSION: ${{ steps.version.outputs.OOLITE_VERSION }} ## This is for debugging only and helps developing the workflow. - #- name: Environment Variables 1 + # - name: Environment Variables 1 # run: | # printenv | sort # find . -not -path "./oolite/deps/*" -not -path "./oolite/Mac-specific/*" -not -path "./oolite/.git/*" @@ -203,7 +243,7 @@ jobs: runs-on: ubuntu-latest steps: ## This is for debugging only and helps developing the workflow. - #- name: Environment Variables + # - name: Environment Variables # run: | # printenv | sort @@ -216,7 +256,7 @@ jobs: - name: show filesystem after download run: | find . - + # For changes on master branch, create a new release. # It should move the 'latest' tag automatically. - name: Create Release diff --git a/Doxyfile b/Doxyfile index 9209903cb..b91d84e16 100644 --- a/Doxyfile +++ b/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = "Oolite" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = +PROJECT_NUMBER = $(OOLITE_VERSION) # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a