Commit Graph

25 Commits

Author SHA1 Message Date
8042b7dcc8 fix(ci): use shallow clone with tag fetch to avoid 45k commit download
Some checks failed
Build and Test / build (push) Successful in 1h11m46s
Release Build / build-linux (push) Failing after 2m32s
Release Build / build-macos (arm64, macos-14) (push) Has been cancelled
Release Build / build-macos (x86_64, macos-13) (push) Has been cancelled
Release Build / build-windows (push) Has been cancelled
Release Build / publish-release (push) Has been cancelled
fetch-depth: 0 downloads the entire FreeCAD history (45k+ commits),
causing 13+ minute checkout times. Switch to fetch-depth: 1 with a
separate lightweight tag fetch for git describe.
2026-02-03 12:13:01 -06:00
7ce21aceb6 fix(ci): remove container directive for dockerized runner compatibility
Some checks failed
Build and Test / build (push) Failing after 17m20s
Release Build / build-linux (push) Has been cancelled
Release Build / build-macos (arm64, macos-14) (push) Has been cancelled
Release Build / build-macos (x86_64, macos-13) (push) Has been cancelled
Release Build / build-windows (push) Has been cancelled
Release Build / publish-release (push) Has been cancelled
Gitea act_runner in Docker mode maps the runs-on label to a container
image via its config. The container: block conflicts with this by
attempting to create a nested container. Remove it so the runner's
own docker://ubuntu:24.04 mapping is used directly.
2026-02-03 10:59:26 -06:00
1b3f780aa1 chore: migrate submodules to public repos, rework docs and CI/CD
Some checks failed
Build and Test / build (push) Has been cancelled
- Update .gitmodules: ztools, silo, and OndselSolver now reference
  public git.kindred-systems.com URLs instead of internal Gitea
- Merge OndselSolver numerical solver with ML solver scaffolding
  into unified kindred/solver repository
- Rewrite README.md for conciseness
- Add docs/CI_CD.md with full pipeline documentation
- Rework CI/CD workflows for public dockerized runners
- Add multi-platform release builds (Linux, macOS, Windows)
- Release workflow triggers on v* tags only
- Update docs/REPOSITORY_STATE.md and docs/INTEGRATION_PLAN.md
2026-02-03 10:54:47 -06:00
forbes
5b7b770f80 fix(ci): use fixed path for ccache dir to survive workspace changes
The Gitea runner assigns a different workspace directory hash on each
run (e.g. /var/lib/gitea-runner/.cache/act/<hash>/hostexecutor/). When
CCACHE_DIR was set to ${{ github.workspace }}/.ccache, the actions/cache
save and restore operated on a path that changed every run, making the
restored cache land in the wrong location. This caused 0% hit rate on
the second build despite the cache being saved successfully.

Fix by using a fixed path (/tmp/ccache-kindred-create) for CCACHE_DIR
and the cache action path. CCACHE_BASEDIR remains set to the workspace
so ccache stores relative source paths, making cache entries portable
across different workspace directories.
2026-02-01 18:15:16 -06:00
forbes
7bad1b787f ci: add ccache persistence via actions/cache for build and release workflows
- Move CCACHE_DIR inside workspace for actions/cache compatibility
- Add CCACHE_BASEDIR for portable cache entries across workspaces
- Add cache restore step with fallback keys (branch -> main)
- Add cache save step (runs even on test/packaging failure)
- Enhance ccache diagnostics with pre/post build stats and cache size
- Release builds fall back to main branch build cache for warm starts
2026-02-01 18:15:16 -06:00
forbes
da65855dd4 Fix: Remove x86-64-v3 CPU flags for broader compatibility
The -march=x86-64-v3 flag requires AVX2 instructions which are not
available on all target machines (e.g. QEMU VMs with only SSE4.2).
This caused 'Illegal instruction' crashes at runtime.

Remove the explicit -march flags from both build and release workflows
to use the default target architecture, ensuring the .deb package runs
on a wider range of x86-64 machines.
2026-01-29 16:15:32 -06:00
forbes
d3cc827c67 CI: Switch from Forgejo to GitHub actions mirror
Forgejo mirror at code.forgejo.org was timing out. Using GitHub
directly for checkout and upload-artifact actions.
2026-01-28 17:37:05 -06:00
forbes
7bbb046e8e Fix .deb packaging: version must start with digit
- Fix version conversion for Debian policy compliance
  (e.g., weekly-2025.01.28 -> 0~weekly.2025.01.28)
- Add MIME type registration for .fcstd files
- Add AppStream metainfo for software centers
- Add copyright file (required by Debian policy)
- Improve maintainer scripts with proper case statements
- Expand dependencies in control file (Depends/Recommends/Suggests)
- Add .deb build step to release workflow
- Simplify build workflow to let script handle version conversion
2026-01-28 17:29:09 -06:00
forbes
65db9ce93c CI: Remove sudo commands from certificate setup
- Skip system trust store installation (requires sudo)
- Rely on NODE_EXTRA_CA_CERTS for Node.js actions
- Use --cacert for curl verification
2026-01-28 10:01:53 -06:00
forbes
97f6bee3a6 CI: Fix openssl hang by avoiding pipe to head
- Use -subject -dates -noout instead of -text -noout | head -20
- Remove --cacert from curl since cert is now in system store
2026-01-28 09:56:52 -06:00
forbes
0d631b5c91 CI: Add FreeIPA CA certificate trust for artifact uploads
- Download and verify FreeIPA CA cert at job start
- Install cert to system trust store
- Set NODE_EXTRA_CA_CERTS for Node.js actions
- Test SSL connection to Gitea before proceeding
- Restore artifact upload step now that SSL should work
2026-01-28 09:50:45 -06:00
forbes
e92762f8ec CI: Fix ccache directory permissions issue
- Use workspace-relative ccache directory instead of /var/cache
- Remove sudo commands that fail without passwordless sudo
- Ccache persists in parent of workspace directory
2026-01-28 08:49:49 -06:00
forbes
09a81e9b0e Revert to simple HTTPS cloning for public repos
- Use Forgejo checkout action with HTTPS (no SSH)
- Update submodule URLs from SSH to HTTPS
- All repos are now public, no authentication needed
2026-01-27 14:45:42 -06:00
forbes
5309e5503f Replace checkout action with manual SSH clone
- Bypass SSSD KnownHostsCommand by using custom SSH config
- Set KnownHostsCommand none in SSH config
- Use GIT_SSH_COMMAND with explicit config file
- Manual git clone with --recurse-submodules
2026-01-27 14:38:47 -06:00
forbes
05c1950c0a Use checkout action's ssh-known-hosts parameter
- Fetch host key with ssh-keyscan and pass to checkout action
- Use ssh-known-hosts and ssh-strict parameters to bypass SSSD
- This ensures the checkout action uses our host key, not system KnownHostsCommand
2026-01-27 14:37:23 -06:00
forbes
528ee6c15c Override SSSD KnownHostsCommand in CI SSH config
- Add SSH config to bypass sss_ssh_knownhosts command
- Set StrictHostKeyChecking no for gitea.kindred.internal
- Use local known_hosts file instead of SSSD lookup
2026-01-27 14:36:19 -06:00
forbes
f4d4eecf92 Add SSH known_hosts setup for CI runner
- Run ssh-keyscan before checkout to add gitea.kindred.internal host key
- Fixes 'KnownHostsCommand failed' error during SSH authentication
2026-01-27 14:33:10 -06:00
forbes
c411f11e8b Use SSH deploy key for submodule checkout in CI
- Add ssh-key parameter to checkout action in build.yml and release.yml
- Uses DEPLOY_KEY secret for SSH authentication to internal repos
- Fixes 403 permission errors when cloning mods/silo submodule
2026-01-27 14:28:05 -06:00
forbes
41521ea09a Fix CI workflows for Gitea/Forgejo runner
- Replace GitHub actions with Forgejo equivalents:
  - actions/checkout@v4 -> code.forgejo.org/actions/checkout@v4
  - actions/upload-artifact@v4 -> code.forgejo.org/actions/upload-artifact@v3
- Fixes problem-matcher.json path errors on Gitea runner
- Fixes artifact upload compatibility issues
2026-01-27 14:16:30 -06:00
forbes
0e3b024922 add back modern cpu instructions 2026-01-26 15:22:36 -06:00
forbes
69689f11be Use standalone node binary instead of apt package
Avoids dependency conflicts on the runner by downloading node
directly from nodejs.org instead of using nodesource apt repo.
2026-01-26 12:32:50 -06:00
forbes
90db886359 Install node on runner for GitHub Actions compatibility
The Gitea runner needs node to execute actions like checkout@v4.
Install node 20.x from nodesource if not already present.
2026-01-26 12:31:18 -06:00
forbes
0760f977d8 Fix Gitea workflows: use git commands instead of node-based actions
The Gitea runner in host mode doesn't have node installed, so we
replace the actions/checkout and actions/upload-artifact with
direct git/bash commands.
2026-01-26 12:24:18 -06:00
forbes
5bb8b0574b Change runner tag 2026-01-26 12:16:55 -06:00
forbes
2434aedfd9 Replace GitHub Actions with Gitea Actions
- Remove all GitHub Actions workflows (21 files)
- Remove GitHub problem matchers
- Add Gitea build workflow (push/PR to main)
- Add Gitea release workflow (version tags)
- Use pixi for dependency management
- Configure ccache for build acceleration
- Use 16 build threads for debian-host runner
- Update .gitignore to allow .gitea/ directory
2026-01-26 12:10:38 -06:00