Skip to content

Fixed occasional false indication of ECM burst when launching from st… #377

Fixed occasional false indication of ECM burst when launching from st…

Fixed occasional false indication of ECM burst when launching from st… #377

Workflow file for this run

name: build-all
on:
workflow_dispatch:
push:
jobs:
common-steps:
runs-on: ubuntu-latest
steps:
- name: install all the necessary packages
run: |
sudo apt update
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
sudo apt -y install libreoffice ttf-mscorefonts-installer
- name: Checkout Oolite
uses: actions/checkout@v4
with:
path: oolite
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 oolite/Doc/OOLITE_VERSION.txt
- name: Archive generated documentation
uses: actions/upload-artifact@v4
with:
name: oolite-doc
path: |
oolite-doc.zip
retention-days: 5
- name: Check Javascript with linter
run: |
npm install eslint
npm install --save-dev eslint eslint-plugin-es-x
npx eslint . || echo Ignore problems and continue
build-linux:
runs-on: ubuntu-latest
needs: [common-steps]
strategy:
matrix:
flavour: [pkg-posix-nightly, pkg-posix-test, pkg-posix]
steps:
## This is for debugging only and helps developing the workflow.
# - name: Environment Variables
# run: |
# printenv | sort
- name: install all the necessary packages
run: |
sudo apt update
sudo apt -y install git gobjc gnustep-devel make libsdl1.2-dev libvorbis-dev libopenal-dev g++ libespeak-dev libnspr4-dev
- name: Checkout Oolite
uses: actions/checkout@v4
with:
path: oolite
fetch-depth: 0
submodules: true
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: oolite-doc
path: artifacts
- name: Extract PDFs
run: |
unzip -u artifacts/oolite-doc.zip
# This is for debugging only and helps developing the workflow.
- 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 ${{matrix.flavour}} HOST_ARCH=$(uname -m)
## This is for debugging only and helps developing the workflow.
# - 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/*"
# 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 installer
uses: actions/upload-artifact@v4
with:
name: ${{matrix.flavour}}
path: |
oolite/installers/posix/OoliteInstall-*.run
retention-days: 5
build-windows:
runs-on: windows-latest
needs: [common-steps]
strategy:
matrix:
flavour: [pkg-win-snapshot,pkg-win-deployment,pkg-win]
steps:
## This is for debugging only and helps developing the workflow.
# - name: Environment Variables
# run: |
# Get-ChildItem Env: | Sort Name
- name: Checkout DevelopmentEnvironment
uses: actions/checkout@v4
with:
repository: OoliteProject/oolite-windows-build-env
path: DevelopmentEnvironment
- name: Checkout Oolite
uses: actions/checkout@v4
with:
path: oolite
fetch-depth: 0
submodules: true
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: oolite-doc
path: artifacts
- name: Extract PDFs
run: |
unzip -u artifacts/oolite-doc.zip
# 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
run: |
Get-ChildItem -Path "$env:GITHUB_WORKSPACE" –Recurse
- name: Prepare compile script with flavour
shell: cmd
run: |
echo Want to build flavour ${{matrix.flavour}}
mkdir D:\a\oolite\oolite\DevelopmentEnvironment\gcc\Msys_x2\1.0\etc\profile.d
echo export FLAVOUR="${{matrix.flavour}}" > D:\a\oolite\oolite\DevelopmentEnvironment\gcc\Msys_x2\1.0\etc\profile.d\flavour.sh
cat D:\a\oolite\oolite\DevelopmentEnvironment\gcc\Msys_x2\1.0\etc\profile.d\flavour.sh
- name: check filesystem after preparation
run: |
Get-ChildItem -Path "$env:GITHUB_WORKSPACE" –Recurse
- 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
run: |
Get-ChildItem -Path "$env:GITHUB_WORKSPACE" –Recurse
- name: Archive build
uses: actions/upload-artifact@v4
with:
name: oolite-windows-${{matrix.flavour}}
path: |
oolite/installers/win32/OoliteInstall*.exe
retention-days: 5
build-doxygen:
runs-on: ubuntu-latest
needs: [common-steps]
steps:
- name: install all the necessary packages
run: |
sudo apt update
sudo apt -y install graphviz
- name: Checkout Oolite
uses: actions/checkout@v4
with:
path: oolite
fetch-depth: 0
submodules: true
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: oolite-doc
path: artifacts
- name: Extract artifacts
run: |
unzip -u artifacts/oolite-doc.zip
- name: set version
id: version
run: |
OOLITE_VERSION=$(cat oolite/Doc/OOLITE_VERSION.txt | cut -d= -f2)
echo "OOLITE_VERSION=${OOLITE_VERSION}" >> "$GITHUB_OUTPUT"
sed -i -e "/PROJECT_NUMBER\s*=/ s/=.*/=${OOLITE_VERSION}/" oolite/Doxyfile
- name: Download latest Doxygen
id: download-doxygen
uses: robinraju/[email protected]
with:
repository: "doxygen/doxygen"
# A flag to set the download target as latest release
# The default value is 'false'
latest: true
# The github tag. e.g: v1.0.1
# Download assets from a specific tag/version
# tag: "v1.0.68"
# The release id to download files from
# releaseId: ""
# The name of the file to download.
# Use this field only to specify filenames other than tarball or
# zipball, if any.
# Supports wildcard pattern (eg: '*', '*.deb', '*.zip' etc..)
fileName: "doxygen-*.linux.bin.tar.gz"
# Download the attached tarball (*.tar.gz)
tarBall: false
# Download the attached zipball (*.zip)
zipBall: false
# Relative path under $GITHUB_WORKSPACE to place the downloaded
# file(s). It will create the target directory automatically if
# not present eg:
# out-file-path: "my-downloads"
# => It will create directory $GITHUB_WORKSPACE/my-downloads
out-file-path: "doxygen"
# A flag to set if the downloaded assets are archives and should
# be extracted. Checks all downloaded files if they end with zip,
# tar or tar.gz and extracts them, if true. Prints a warning if
# enabled but file is not an archive - but does not fail.
extract: true
- name: Check filesytem before Doxygen run
run: |
find . -not -path "./oolite/deps/*" -not -path "./oolite/Mac-specific/*" -not -path "./oolite/.git/*"
#- name: Run doxygen
# uses: mattnotmitt/[email protected]
# with:
# working-directory: oolite
- name: Run Doxygen
run: |
echo Downloaded: ${{ fromJson(steps.download-doxygen.outputs.downloaded_files)[0] }}
cd oolite
../doxygen/doxygen-*/bin/doxygen
## This is for debugging only and helps developing the workflow.
# - name: Environment Variables 1
# run: |
# printenv | sort
# find . -not -path "./oolite/deps/*" -not -path "./oolite/Mac-specific/*" -not -path "./oolite/.git/*"
- name: create tar ball
run: |
tar cvfz oolite-apidoc-${{ steps.version.outputs.OOLITE_VERSION }}.tgz -C oolite doxygen
# This is for debugging only and helps developing the workflow.
- name: Environment Variables 2
run: |
find . -not -path "./oolite/deps/*" -not -path "./oolite/Mac-specific/*" -not -path "./oolite/.git/*"
- name: Archive build tar ball
uses: actions/upload-artifact@v4
with:
name: oolite-documentation-nightly
path: |
oolite-*.tgz
retention-days: 5
- name: Upload github pages artifact
uses: actions/upload-pages-artifact@v2
with:
path: oolite/doxygen/html
release:
needs: [build-linux, build-windows, build-doxygen]
runs-on: ubuntu-latest
steps:
## This is for debugging only and helps developing the workflow.
# - name: Environment Variables
# run: |
# printenv | sort
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
# This is for debugging only and helps developing the workflow.
- name: show filesystem after download
run: |
find . -type f | sort
echo
find . -type f -exec basename {} \; | sort
- name: Extract artifacts
run: |
ls -l artifacts
unzip -u artifacts/oolite-doc/oolite-doc.zip
- name: set version
id: version
run: |
OOLITE_VERSION=$(cat oolite/Doc/OOLITE_VERSION.txt | cut -d= -f2)
echo "OOLITE_VERSION=${OOLITE_VERSION}" >> "$GITHUB_OUTPUT"
- name: Remove old prereleases
if: github.ref == 'refs/heads/master'
uses: s00d/[email protected]
with:
keep_latest: 7
delete_type: 'prerelease'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# For changes on master branch, create a new release.
# It should move the 'latest' tag automatically.
- name: Create Release
if: github.ref == 'refs/heads/master'
id: create_release
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
# automatic_release_tag: "latest"
automatic_release_tag: "${{ steps.version.outputs.OOLITE_VERSION }}"
prerelease: true
title: "Oolite ${{ steps.version.outputs.OOLITE_VERSION }}"
files: |
artifacts/oolite-documentation-nightly/oolite-apidoc-*.tgz
artifacts/oolite-windows-pkg-win-snapshot/OoliteInstall-*-dev.exe
artifacts/oolite-windows-pkg-win-deployment/OoliteInstall-*.exe
artifacts/oolite-windows-pkg-win/OoliteInstall-*.exe
artifacts/pkg-posix-nightly/*.run
artifacts/pkg-posix/*.run
artifacts/pkg-posix-test/*.run
- name: Remove old workflow runs
if: github.ref == 'refs/heads/master'
uses: Mattraks/delete-workflow-runs@v2
with:
token: ${{ github.token }}
repository: ${{ github.repository }}
retain_days: 30
keep_minimum_runs: 8
deploySite:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: build-doxygen
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master'
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2