Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
10e3ce8
ci: Remove eatmydata
hdiethelm Apr 30, 2026
e76ea07
ci: Move to scripts / No need to update
hdiethelm Apr 30, 2026
55e07f8
ci: Split into dependency/build/test
hdiethelm Apr 30, 2026
0ca6ae8
ci: Update to actions/checkout@v6 / don't fetch all
hdiethelm Apr 30, 2026
b57db69
ci: Move cppcheck up, so all testing is at the same place
hdiethelm Apr 30, 2026
068877e
ci: actions/upload-artifact@v7 / actions/download-artifact@v8
hdiethelm Apr 30, 2026
13b86ce
ci: Set docker to 4 cpu's
hdiethelm Apr 30, 2026
d684a5b
ci: --cpus should not be needed at all
hdiethelm Apr 30, 2026
65e11ba
ci: Fix
hdiethelm May 1, 2026
65d7e87
ci: Merge to old ci
hdiethelm May 1, 2026
7796169
ci: Define DEBIAN_FRONTEND only once
hdiethelm May 2, 2026
48e60e8
ci: Fix
hdiethelm May 2, 2026
725749f
ci: Merge docker prototyping
hdiethelm May 2, 2026
eb7e481
ci: Add missing package
hdiethelm May 2, 2026
28fa383
ci: Verify clean
hdiethelm May 2, 2026
c951a9b
ci: Check clean with exclude / Fix .gitignore / Enforce
hdiethelm May 2, 2026
ae17b95
ci: Use improved regexp / continue-on-error true for html docs and indep
hdiethelm May 3, 2026
c23bcda
ci: Change from regexp to pathspec
hdiethelm May 3, 2026
29cd5c3
ci: Add names where still missing
hdiethelm May 3, 2026
aecd47b
ci: Move more build steps to scripts
hdiethelm May 3, 2026
64f31f3
ci: Add clean check after test
hdiethelm May 3, 2026
41e0c09
ci: Quiet curl / Doc verify-clean-repo
hdiethelm May 3, 2026
65465bd
ci: Add --with-realtime=uspace
hdiethelm May 3, 2026
b5e8eb1
ci: Ignore *.po / documentation.pot but make check hard fail
hdiethelm May 3, 2026
80adb5a
ci: Fix shellcheck issues
hdiethelm May 3, 2026
f54c140
ci: Fix undetected verify fail
hdiethelm May 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .github/scripts/add-linuxcnc-repository.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/sh

set -eu #Needed so CI fails when anything is wrong
set -x

DIST=$1

echo "deb [arch=amd64,arm64 signed-by=/etc/apt/keyrings/linuxcnc.gpg] https://www.linuxcnc.org/ $DIST base" | sudo tee /etc/apt/sources.list.d/linuxcnc.list > /dev/null
case $DIST in
'buster' | 'bullseye' | 'bookworm')
gpg --homedir "${PWD}/gnupg" --export 3CB9FD148F374FEF | sudo tee /etc/apt/keyrings/linuxcnc.gpg > /dev/null
;;
*)
GPGTMP=$(mktemp -d /tmp/.gnupgXXXXXX)
gpg --homedir "$GPGTMP" --keyserver hkp://keyserver.ubuntu.com --recv-key e43b5a8e78cc2927
gpg --homedir "$GPGTMP" --export 'LinuxCNC Archive Signing Key' | sudo tee /etc/apt/keyrings/linuxcnc.gpg > /dev/null
;;
esac
sudo apt-get --quiet update
12 changes: 12 additions & 0 deletions .github/scripts/build-doc.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/sh

set -eu #Needed so CI fails when anything is wrong
set -x

cd src
./autogen.sh
./configure --disable-check-runtime-deps --enable-build-documentation=html
make -O -j$((1+$(nproc))) manpages
make -O -j$((1+$(nproc))) translateddocs
make -O -j$((1+$(nproc))) docs
# Note that the package build covers html docs
11 changes: 11 additions & 0 deletions .github/scripts/build-package-arch.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/sh

set -eu #Needed so CI fails when anything is wrong
set -x

debian/configure
debian/update-dch-from-git
scripts/get-version-from-git | sed -re 's/^v(.*)$/\1/' >| VERSION; cat VERSION
git diff
apt-get -y build-dep --arch-only .
debuild -us -uc --build=any
11 changes: 11 additions & 0 deletions .github/scripts/build-package-indep.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/sh

set -eu #Needed so CI fails when anything is wrong
set -x

debian/configure
debian/update-dch-from-git
scripts/get-version-from-git | sed -re 's/^v(.*)$/\1/' >| VERSION; cat VERSION
git diff
apt-get -y build-dep --indep-only .
debuild -us -uc --build=source,all
11 changes: 11 additions & 0 deletions .github/scripts/build-rip.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/sh

set -eu #Needed so CI fails when anything is wrong
set -x

#Any arguments are passed to configure

cd src
./autogen.sh
./configure "$@" --disable-check-runtime-deps --enable-werror
make -O -j$((1+$(nproc))) default pycheck V=1
9 changes: 9 additions & 0 deletions .github/scripts/install-deps.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/sh

set -eu #Needed so CI fails when anything is wrong
set -x

sudo apt-get --quiet update
sudo apt-get install -y devscripts equivs build-essential lintian clang --no-install-recommends
debian/configure
sudo apt-get -y build-dep .
26 changes: 26 additions & 0 deletions .github/scripts/install-rtai.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/sh

set -eu #Needed so CI fails when anything is wrong
set -x

DIST=$1

if false; then
#To install the RTAI deb's from linuxcnc base
.github/scripts/add-linuxcnc-repository.sh "$DIST"
sudo apt-get --yes install linux-headers-5.4.279-rtai-amd64 linux-image-5.4.279-rtai-amd64 rtai-modules-5.4.279
else
#To install the RTAI deb's from NTULINUX git
TMPDIR=$(mktemp -d)
(
cd "$TMPDIR"
curl --no-progress-meter -fLO https://github.com/NTULINUX/RTAI/releases/download/v5.3.4/linux-headers-5.4.302-rtai-amd64_5.4.302-rtai-amd64-1_amd64.deb
curl --no-progress-meter -fLO https://github.com/NTULINUX/RTAI/releases/download/v5.3.4/linux-image-5.4.302-rtai-amd64_5.4.302-rtai-amd64-1_amd64.deb
curl --no-progress-meter -fLO https://github.com/NTULINUX/RTAI/releases/download/v5.3.4/rtai-modules-5.4.302_5.3.4-linuxcnc_amd64.deb
)
sudo dpkg -i \
"$TMPDIR/linux-headers-5.4.302-rtai-amd64_5.4.302-rtai-amd64-1_amd64.deb" \
"$TMPDIR/linux-image-5.4.302-rtai-amd64_5.4.302-rtai-amd64-1_amd64.deb" \
"$TMPDIR/rtai-modules-5.4.302_5.3.4-linuxcnc_amd64.deb"
rm -rf "$TMPDIR"
fi
37 changes: 37 additions & 0 deletions .github/scripts/verify-clean-repo.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/bin/sh

set -eu #Needed so CI fails when anything is wrong

#To let the script fail if git status has any issues
#If a command in $() fails, the script just continues
git status -u --porcelain -- "$@" > /dev/null

if [ $# -gt 0 ]; then
#Arguments are pathspecs for git status, used to exclude files for this test
if [ -n "$(git status -u --porcelain -- "$@")" ]; then
echo "Build produced untracked or modified files:----------------------------------------"
git status -u --porcelain -- "$@"
echo "-----------------------------------------------------------------------------------"
echo "Pathspec is: \"$*\", withouth pathspec:--------------------------------------------"
git status -u --porcelain
echo "-----------------------------------------------------------------------------------"
exit 1
else
echo Repo is clean
echo "Pathspec is: \"$*\", withouth pathspec:--------------------------------------------"
git status -u --porcelain
echo "-----------------------------------------------------------------------------------"
exit 0
fi
else
#No arguments: Test all files
if [ -n "$(git status -u --porcelain)" ]; then
echo "Build produced untracked or modified files:----------------------------------------"
git status -u --porcelain
echo "-----------------------------------------------------------------------------------"
exit 1
else
echo Repo is clean
exit 0
fi
fi
Loading
Loading