speed-dreams-code/.forgejo/workflows/build-deb.yml
Xavier Del Campo Romero 022b19a141
Remove simuv2.1, add FreeSOLID as a submodule
As opposed to simu >= 3.0, simu 2.1 did not consider air or wheel
temperatures. This would have several consequences:

- Some drivers such as shadow rely on these parameters to calculate tire
grip. If temperature air is zero (i.e., 0K), no grip is assumed
and therefore speeds are also assigned to zero, making the driver not to
move at all.

- Invalid temperature values (i.e., 0K) would be shown on the UI, both
in ssg and OSG.

Unfortunately, simuv2.1 bundled the SOLID-2.0 library (aka FreeSOLID)
because the library is not available from most GNU/Linux distributions
yet.

In order to solve this situation, the FreeSOLID library was migrated
from CVS to Git [1] so it could be used as a submodule, and therefore
let the build system decide whether to optionally use the in-tree copy.
That said, packaging/3rdParty-devel has dropped FreeSOLID in favour of
the submodule, since it must always be built from source anyway.

[1]: https://forge.a-lec.org/speed-dreams/freesolid
2025-01-27 00:46:06 +01:00

38 lines
1.2 KiB
YAML

on: [pull_request]
jobs:
build:
strategy:
matrix:
image: [
debian-sd:stable,
ubuntu-sd:jammy,
]
runs-on: docker
container:
image: forge.a-lec.org/speed-dreams/${{ matrix.image }}
steps:
- name: Clone repository
run: |
git clone -q \
-b ${{ env.GITHUB_HEAD_REF }} \
${{ env.GITHUB_SERVER_URL }}/${{ env.GITHUB_REPOSITORY }}.git \
/src
- name: Update FreeSOLID submodule
run: git submodule update --init freesolid
working-directory: /src
- name: Configure project
working-directory: /src
run: cmake -B build -DSD_ASSUME_DATADIR=1
- name: Build project
run: cmake --build build -j$(nproc --all)
working-directory: /src
- name: Build Debian package
run: cpack -G DEB
working-directory: /src/build
- name: Upload Debian package
run: upload-artifact -d ${{ matrix.image }} *.deb
working-directory: /src/build
env:
URL: ${{ vars.STORE_URL }}
USERNAME: ${{ secrets.STORE_USERNAME }}
PASSWORD: ${{ secrets.STORE_PASSWORD }}