Commit Graph
308 Commits
Author SHA1 Message Date
Magne Sjaastad b1fb0d9e08 #14321 CI: Add RHEL8 installation package workflow
Add rhel8-package.yml that builds a RHEL8 install package from a tag
using the prebuilt RHEL8 CI container. It configures with an install
prefix, builds the install target, runs the CPack package target, and
uploads the resulting *.tar.gz as the ResInsight-RHEL8 artifact.

Wire the new workflow into release-draft.yml so the draft release waits
for the RHEL8 package run and attaches the *.tar.gz directly, alongside
the existing zipped platform artifacts.
2026-06-26 14:43:51 +02:00
Magne Sjaastad e0973e3055 CI: Include MSVC toolset version in vcpkg cache key
The vcpkg binary cache was restored on every Windows run, but vcpkg rejected all binaries and rebuilt from source. vcpkg keys each binary by an ABI hash that includes the MSVC toolset version, which was not part of the cache key (only OS, compiler name, vcpkg submodule SHA and the vcpkg-configuration.json hash). When the runner image bumps MSVC, the restored binaries become ABI-incompatible and vcpkg rebuilds everything. Because the cache key stays unchanged, the action skips saving the freshly built binaries, so the stale entry can never refresh and the rebuild loop persists across runs.

Add the MSVC toolset version (VCToolsVersion, exported by the MSVC setup step) to the cache key on Windows. A toolset bump now yields a new key, producing one cold rebuild followed by a successful save under the new key, after which subsequent runs restore from cache.
2026-06-25 08:12:37 +02:00
Magne Sjaastad c88bce79f3 Add workflow to create draft release with binaries on tag
On a tag push, wait for the Windows/Linux build (ResInsightWithCache.yml)
and the macOS build (ResInsightMac.yml) to finish, download their
application artifacts, zip them per platform, and create a draft GitHub
Release with the archives attached for maintainer review.
2026-06-22 09:02:45 +02:00
dependabot[bot] 48de332bfb Bump astral-sh/setup-uv from 8.1.0 to 8.2.0
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 8.1.0 to 8.2.0.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](https://github.com/astral-sh/setup-uv/compare/08807647e7069bb48b6ef5acd8ec9567f424441b...fac544c07dec837d0ccb6301d7b5580bf5edae39)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 8.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-08 13:03:24 +02:00
Magne Sjaastad 0275191b36 CI: remove redundant Get CMake and Ninja step from AppFwkUnitTest 2026-06-04 14:35:16 +02:00
Magne Sjaastad b81929e045 CI: modernize runners and bump setup-uv to Node.js 24 2026-06-02 22:59:50 +02:00
Magne Sjaastad 94feef8c46 CI: install Python packages no newer than one week via uv
Plain pip has no time-based cutoff, so route the workflow's package
installs through uv and set UV_EXCLUDE_NEWER to refuse releases
published within the last week as supply-chain hardening. Mirror the
policy in the rips pyproject for local uv installs.
2026-06-02 12:53:38 +02:00
Magne Sjaastad 8ad0fb7b7e #14045 CI: Limit macOS workflow to workflow_dispatch and schedule triggers 2026-06-01 12:55:22 +02:00
Magne Sjaastad 022d77bef8 macOS: Initial Apple Silicon and x86_64 build support
* Refactor: add MACOSX_BUNDLE option to qt_add_executable in multiple CMakeLists.txt files
* #14045 macOS: Guard std::stacktrace usage and skip ucontext on Apple platforms
* #14045 macOS: Guard std::ispanstream with std::istringstream fallback
* #14045 macOS: Add vcpkg overlay triplets for osx and exclude grpc on osx
* #14045 macOS: CMake macOS build support and openzgy OpenMP-disable patch
* #14045 CI: Add macOS build workflow
* #14045 macOS: Use feature-test macros to detect <stacktrace> and <spanstream>
* #14045 macOS: Make MAX_STIMPLAN_LAYERS constexpr to fix arm64 link error
* #14045 CI: Ship README-macOS.txt with artifact to document Gatekeeper workaround
* #14045 CI: Pin macOS runner to macos-14 and set deployment target to 14.0
* #14045 CI: Move macOS runner to macos-15 and fix README step on configure failure
2026-06-01 12:38:55 +02:00
Magne Sjaastad e93607d1d7 CI: Run RHEL8 unit tests on every push and PR 2026-05-26 18:45:57 +02:00
dependabot[bot] ea43526977 Bump docker/setup-buildx-action from 3 to 4
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3 to 4.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-25 20:42:13 +02:00
dependabot[bot] de348f34d1 Bump docker/build-push-action from 6 to 7
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-25 20:41:30 +02:00
dependabot[bot] 347eddb93c Bump docker/login-action from 3 to 4
Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-25 20:40:49 +02:00
Magne Sjaastad f4e40e0287 Improve configuration for copilot agent run (#14040) 2026-05-24 19:19:47 +02:00
Magne Sjaastad bb49381997 Revert 5 commits, rolling back to 20b1ef95c7 2026-05-24 18:24:35 +02:00
Magne Sjaastad dfc007e54e CI: force CC=gcc-14 for vcpkg cache hits in copilot-setup-steps
vcpkg detects the compiler hash before the CMake toolchain file loads,
so -DCMAKE_C_COMPILER=gcc-14 on the cmake line was too late -- vcpkg
picked up /usr/bin/c++ (gcc-13 on Ubuntu 24.04) and computed an ABI
hash that did not match the gcc-14 entries baked into the image's
/opt/vcpkg-cache-gcc, restoring 0 packages and rebuilding all 102
ports from source. Export CC/CXX in the step env to match the
Dockerfile's vcpkg-builder-gcc stage.
2026-05-24 12:07:32 +02:00
Magne Sjaastad ecb928d832 CI: run copilot-setup-steps inside the prebuilt ci-ubuntu24 image
Switches the Copilot Coding Agent's pre-flight job to the prebuilt
ghcr.io/<repo>/ci-ubuntu24 image so the toolchain, Qt, vcpkg cache, and
warm ResInsight buildcache are already provisioned at the start of every
agent session. The setup only fetches source, installs the editable rips
package, and warms an incremental build.

The image's buildcache was baked at /src so source path matching matters
for hit rate. actions/checkout puts source at $GITHUB_WORKSPACE; this
adds a /src -> $GITHUB_WORKSPACE symlink and configures at /src so gcc
command lines reference /src/... and match the baked entries. CMake
records CMAKE_SOURCE_DIR as the string passed to -S without resolving
symlinks, so the indirection is transparent to the build and to Copilot
edits (which still land on the workspace files the symlink points at).

Drops the in-workflow apt/Qt/buildcache restore/vcpkg restore plumbing
that the image now obviates, including the temporary cache-layout
diagnostic block added while debugging the prior restore behavior.
2026-05-24 11:22:43 +02:00
Magne Sjaastad 713e977bfc CI: add Ubuntu 24.04 prebuilt Docker image for Linux CI and Copilot agent
Adds .github/docker/Dockerfile.ubuntu24 -- a multi-stage image bundling gcc-14, clang-19, Qt 6.7.0, the buildcache binary from the canonical GitLab repo, per-compiler vcpkg binary caches, and per-compiler warm ResInsight buildcaches. Published to ghcr.io/<repo>/ci-ubuntu24 by a new nightly build workflow that mirrors the RHEL8 pattern, with a matching daily cleanup workflow that applies the same GHCR retention rules.

Adds .github/workflows/ResInsightWithCacheLinuxContainer.yml -- a parallel companion to the existing Linux legs in ResInsightWithCache.yml, running both compilers in a matrix inside the container with /src as the working directory so buildcache hashes line up with the warmup baked into the image.

The existing ResInsightWithCache.yml Linux legs remain unchanged during the validation phase. copilot-setup-steps.yml will be migrated to the container in a follow-up once the image is proven.
2026-05-24 11:22:43 +02:00
Magne Sjaastad 2eb1f3bb51 CI: diagnose vcpkg cache layout on Copilot agent runs
Cache action reports a hit and extracts ~787 MB, but vcpkg then
restores 0 packages from the path it advertises. Same cache key
works on regular GitHub-hosted runners, so the suspicion is a
workspace path mismatch in the Copilot cloud agent's bind-mounted
environment. Add a temporary step to print pwd, GITHUB_WORKSPACE,
the action's output path, and locate any .vcpkg-cache on disk.
2026-05-24 08:26:19 +02:00
copilot-swe-agent[bot]andmagnesj e8628ac94d Fix Copilot setup-steps compatibility for agent runs
Agent-Logs-Url: https://github.com/magnesj/ResInsight/sessions/3b42d031-f22b-4a85-a4a7-9be76cd74263

Co-authored-by: magnesj <1793152+magnesj@users.noreply.github.com>
2026-05-24 08:11:04 +02:00
Magne Sjaastad 20b1ef95c7 CI: drop RESINSIGHT_QT5_BUNDLE_LIBRARIES from ResInsightWithCache
The CMake option is no longer defined, so passing it on the configure
line has been a no-op. Removing the last remaining reference.
2026-05-23 19:34:38 +02:00
Magne Sjaastad 16dea6e855 CI: drop RESINSIGHT_QT5_BUNDLE_LIBRARIES from Copilot setup-steps
The agent does not need a self-contained install tree with Qt staged
next to the binary; skipping the bundle step saves time without
affecting the buildcache/vcpkg cache the agent inherits.
2026-05-23 19:34:38 +02:00
Magne Sjaastad 37155c311d CI: add Copilot coding agent setup-steps for Ubuntu/gcc-14
Pre-flight workflow that GitHub Copilot's coding agent runs before each
session. Mirrors the Ubuntu/gcc-14 leg of ResInsightWithCache.yml so it
shares the same buildcache and vcpkg cache keys; the nightly CI run
warms the caches that this job restores.

Does a configure + build so the agent's first edit only recompiles the
translation units it actually touches. Unity build is off so a single
.cpp change doesn't invalidate a whole unity blob's cache entry.
2026-05-23 19:34:38 +02:00
Magne Sjaastad 0e259e49e8 RHEL8 CI: prebuilt Docker image with toolchain, vcpkg cache, and warm buildcache 2026-05-23 16:09:17 +02:00
Kristian Bendiksen 294ab9f277 #13842 CI: Create dev fallback _version.py before pip install
The "Install dependencies" step does an editable install of the rips
package before CMake runs, so the CMake-generated rips/_version.py
does not yet exist and setuptools' attr: directive fails.

Write a dev fallback before pip install. The real version is regenerated
by CMake during the subsequent build step.
2026-05-21 08:32:45 +02:00
Kristian Bendiksen 5486c615a1 #13842 Python: Migrate from setup.py to pyproject.toml
Replace legacy setup.py packaging with modern pyproject.toml (PEP 517/518/621).
Version is dynamically resolved via setuptools attr: directive from rips/_version.py,
which CMake generates.

Consolidate requirements.txt, dev-requirements.txt, and build-requirements.txt
into pyproject.toml dependencies and [dev] optional-dependencies.
Consolidate rips/mypy.ini into [tool.mypy] section of pyproject.toml.
Update GitHub Actions workflow and CMakeLists.txt accordingly.
2026-05-21 08:32:45 +02:00
copilot-swe-agent[bot]andmagnesj be55d3f4a7 CI: add workflow to test latest rips against latest ResInsight artifact
Agent-Logs-Url: https://github.com/magnesj/ResInsight/sessions/5f1f1cff-d8ff-4f91-9315-fc85786f9fcf

Co-authored-by: magnesj <1793152+magnesj@users.noreply.github.com>
2026-05-09 14:32:47 +02:00
Magne Sjaastad 3cec2a9078 Update vcpkg cache key in clang-tidy workflow to use specific identifier
Change the cache key prefix from `clang++-19` to `clang-tidy-19` to ensure the vcpkg cache for the clang-tidy job is isolated from standard build caches.
2026-04-28 08:08:36 +02:00
Magne Sjaastad f91f77d7db Use CeetronSolutions/vcpkg-cache with optimized cache storage structure and submodule-aware cache key 2026-04-20 22:07:23 +02:00
dependabot[bot] aefa72cee0 Bump actions/github-script from 8 to 9
Bumps [actions/github-script](https://github.com/actions/github-script) from 8 to 9.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v8...v9)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '9'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-13 17:00:19 +02:00
Magne Sjaastad c0901abe60 Use CeetronSolutions/install-qt-action@bump-node24 to fix node24 issues 2026-04-07 14:18:01 +02:00
dependabot[bot] fd85ebf3b9 Bump CeetronSolutions/setup-buildcache-action from 1.0 to 1.1
Bumps [CeetronSolutions/setup-buildcache-action](https://github.com/ceetronsolutions/setup-buildcache-action) from 1.0 to 1.1.
- [Release notes](https://github.com/ceetronsolutions/setup-buildcache-action/releases)
- [Commits](https://github.com/ceetronsolutions/setup-buildcache-action/compare/v1.0...v1.1)

---
updated-dependencies:
- dependency-name: CeetronSolutions/setup-buildcache-action
  dependency-version: '1.1'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-30 13:58:52 +02:00
Magne Sjaastad f68527a1d7 GHA: Update vcpkg cache to latest 2026-03-17 08:37:19 +01:00
Magne Sjaastad b0153081fc Modernize use of some GitHub actions
* CI: Replace get-current-time action with bash date command
* CI: Replace ilammy/msvc-dev-cmd with TheMrMilchmann/setup-msvc-dev@v4
2026-03-16 11:17:45 +01:00
Kristian Bendiksen 58775bc1cc CI: Fix python-linting workflow to catch unfixable ruff errors
ruff check --diff only reported fixable violations, silently passing
on unfixable errors like E402. Replace with ruff check (no flags) to
fail CI on all violations. Auto-fix PR creation now only triggers on
failure for same-repo branches.
2026-03-06 08:52:04 +01:00
Magne Sjaastad 88985558f8 Set Python version to 3.12 2026-03-02 18:56:25 +01:00
Magne Sjaastad a7ccd088f0 Delete unused workflows 2026-03-02 18:56:25 +01:00
dependabot[bot] ed3a872eb5 Bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 14:08:49 +01:00
dependabot[bot] 2961472b2f Bump actions/download-artifact from 7 to 8
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 14:08:25 +01:00
Magne Sjaastad 64c24a6254 RHEL8: Add separate vcpkg configuration and readme
Add vcpkg-configuration-rhel8.json with an independent baseline that
can be updated separately from the default config. The RHEL8 CI workflow
copies this file over vcpkg-configuration.json before running cmake.
Add vcpkg-readme.md documenting the configuration files and their usage.
2026-03-02 12:42:42 +01:00
dependabot[bot] d0275f1deb Bump actions/checkout from 4 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 13:32:30 +01:00
Magne Sjaastad 3d2f369d6d Add nightly build on RHEL8
Add nightly build on RHEL8 to be able to track platform specific issues. Application unit tests are executed.

Currently building without Python.
2026-02-17 17:48:08 +01:00
Kristian Bendiksen 3449c8fea8 CI: Replace black with ruff for Python linting
Switch from black to ruff for Python code linting and formatting.
Ruff provides both linting (ruff check) and formatting (ruff format)
in a single fast tool.
2026-02-09 08:27:23 +01:00
Magne Sjaastad e8cd19f38c Revert use of Azure for caching, use GitHub Cache
Use of Azure for caching is not working well for private forks of ResInsight. Use a custom vcpkg-cache to store binaries on Github cache.

https://github.com/TAServers/vcpkg-cache

This reverts commit 006a316749.
This reverts commit 1101d74b69.
2026-02-06 21:48:32 +01:00
Kristian Bendiksen 1a07abb794 Fix build workflow for fork PRs
Make vcpkg binary caching conditional on secret availability. When
AZURE_VCPKG_STORAGE_ACCOUNT is not available (fork PRs), fall back to
building dependencies from source instead of failing.
2026-02-06 13:56:25 +01:00
Kristian Bendiksen c53761bbbf Fix Python linting workflow for fork PRs
The peter-evans/create-pull-request action fails for fork PRs because
it tries to fetch a branch that only exists in the fork. Add conditional
logic to handle fork PRs differently:

- Fork PRs: Run black --check --diff and fail if formatting issues exist
- Same-repo PRs and pushes: Keep existing behavior (run black, create fix PR)
2026-02-06 13:56:25 +01:00
Magne Sjaastad d47de408aa Add pytest Windows 2026-02-02 16:35:39 +01:00
Magne Sjaastad 67accb637e Adds workflow to bump dev version
Creates a GitHub Actions workflow to automatically bump the ResInsight dev version number and create a pull request to the dev branch.

This workflow allows for automated incrementing of the `-dev.XX` version suffix upon manual trigger, ensuring consistent versioning and simplifying the release process.
2026-02-01 08:59:20 +01:00
Magne Sjaastad 1101d74b69 Use azure caching for clang-tidy job 2026-01-12 07:48:53 +01:00
Magne Sjaastad 1ae6f40a98 Rename Ubuntu 24.04 gcc-14 to Ubuntu 24.04 gcc 2026-01-12 07:27:40 +01:00