Commit graph

155 commits

Author SHA1 Message Date
TW
0623ef0e13
Merge pull request #9438 from ThomasWaldmann/improve-coverage-master
Improve coverage (master)
2026-03-05 21:49:24 +01:00
Thomas Waldmann
408b6e0513
coverage: misc. tweaks
moved --junitxml parameter to the tox configuration.

haiku: add coverage params to pytest invocation (tox not used there).

vm_tests: add test_results and coverage uploads.

hard-code coverage.xml as coverage filename
2026-03-05 13:42:16 +01:00
Thomas Waldmann
c2b5e28746
CI: move macOS (ARM) job from "merge" to "PR"
That way we should get macOS coverage visible in PRs.

The macOS (intel) job will only run less frequently on merges (likely this runs on older hardware at github).
2026-03-04 17:39:27 +01:00
TW
42196289be
Merge pull request #9419 from mr-raj12/ci-windows-coverage
fix: add --cov flags to Windows CI pytest command, fixes #9418
2026-03-04 17:34:06 +01:00
dependabot[bot]
5a69ea2c8d
build(deps): bump the actions group with 2 updates
Bumps the actions group with 2 updates: [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) and [actions/upload-artifact](https://github.com/actions/upload-artifact).


Updates `actions/attest-build-provenance` from 3 to 4
- [Release notes](https://github.com/actions/attest-build-provenance/releases)
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md)
- [Commits](https://github.com/actions/attest-build-provenance/compare/v3...v4)

Updates `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/attest-build-provenance
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-03 05:46:19 +00:00
Mrityunjay Raj
cc0ed81e5f fix: remove extra coverage config, match Linux CI style 2026-03-01 16:07:28 +05:30
Mrityunjay Raj
d4fb70d3b3 fix: add explicit coverage XML report and fix codecov upload for Windows CI 2026-02-28 13:10:19 +05:30
Mrityunjay Raj
6439b73c00 fix: add --cov flags to Windows CI pytest command, fixes #9418 2026-02-28 06:42:18 +05:30
defnvary
4344eb37d1 use zstd from python stdlib or backport.zstd, closes #9261 2026-02-23 00:33:21 +05:30
Mrityunjay Raj
77a5f439a6 ci: update CodeQL workflow runner to ubuntu-24.04, fixes #9386 2026-02-21 00:02:28 +05:30
TW
4e3352ed58
Merge pull request #9327 from ThomasWaldmann/fixes-master
Misc. fixes (master)
2026-02-17 15:16:02 +01:00
TW
045701558e
Merge pull request #9343 from mr-raj12/fix-http-urls-master
Some checks are pending
Lint / lint (push) Waiting to run
CI / lint (push) Waiting to run
CI / security (push) Waiting to run
CI / asan_ubsan (push) Blocked by required conditions
CI / native_tests (push) Blocked by required conditions
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Blocked by required conditions
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Blocked by required conditions
CI / vm_tests (OmniOS, false, omnios, r151056) (push) Blocked by required conditions
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Blocked by required conditions
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Blocked by required conditions
CI / windows_tests (push) Blocked by required conditions
CodeQL / Analyze (push) Waiting to run
upgrade http:// URLs to https:// and remove dead librelist.com link, fixes #9342
2026-02-16 18:40:51 +01:00
Mrityunjay Raj
fc89a66dc7 upgrade http:// URLs to https:// and remove dead librelist.com link, fixes #9342 2026-02-16 01:42:09 +05:30
Mrityunjay Raj
3349cdcc1e ci: add top-level permissions for least-privilege security, fixes #9344 2026-02-16 00:38:44 +05:30
TW
4e35c373ee
Merge pull request #9329 from mr-raj12/add-workflow-path-filters
ci: add path filters to lint and codeql workflows, fixes #9328
2026-02-14 20:54:55 +01:00
Mrityunjay Raj
802ec2f980 ci: include workflow files in their own path filters 2026-02-15 00:50:49 +05:30
Thomas Waldmann
d537f0d80d
CI: build linux binaries with pyfuse3 2026-02-14 19:32:40 +01:00
Thomas Waldmann
92ebb97ecb
CI: add borg.exe to PATH 2026-02-14 19:03:33 +01:00
Thomas Waldmann
ce7d3ee843
binary build: install cockpit,s3,sftp extras 2026-02-14 19:03:31 +01:00
Mrityunjay Raj
7ca00c0f70 ci: add path filters to lint and codeql workflows, fixes #9328 2026-02-14 23:26:41 +05:30
Mrityunjay Raj
943627131a ci: pin psf/black action to commit SHA, fixes #9317 2026-02-13 23:24:29 +05:30
Thomas Waldmann
64b81b7a8c
CI: codecov: nothing to do for mypy and docs envs 2026-02-13 14:02:58 +01:00
Thomas Waldmann
627d16ac80
CI: add testing on omniOS ("OpenSolaris") 2026-02-13 06:26:47 +01:00
dependabot[bot]
30ba0b1225
build(deps): bump the actions group with 7 updates
Bumps the actions group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4` | `6` |
| [korthout/backport-action](https://github.com/korthout/backport-action) | `3` | `4` |
| [actions/setup-python](https://github.com/actions/setup-python) | `5` | `6` |
| [actions/cache](https://github.com/actions/cache) | `4` | `5` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4` | `6` |
| [cross-platform-actions/action](https://github.com/cross-platform-actions/action) | `0.29.0` | `0.32.0` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3` | `4` |


Updates `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)

Updates `korthout/backport-action` from 3 to 4
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](https://github.com/korthout/backport-action/compare/v3...v4)

Updates `actions/setup-python` from 5 to 6
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

Updates `actions/cache` from 4 to 5
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

Updates `actions/upload-artifact` from 4 to 6
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v6)

Updates `cross-platform-actions/action` from 0.29.0 to 0.32.0
- [Release notes](https://github.com/cross-platform-actions/action/releases)
- [Changelog](https://github.com/cross-platform-actions/action/blob/master/changelog.md)
- [Commits](https://github.com/cross-platform-actions/action/compare/v0.29.0...v0.32.0)

Updates `github/codeql-action` from 3 to 4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: korthout/backport-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: cross-platform-actions/action
  dependency-version: 0.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-13 03:22:48 +00:00
TW
e4d94cb40d
Merge pull request #9311 from mr-raj12/add-concurrency-groups
ci: add concurrency groups to cancel stale workflow runs, fixes #9310
2026-02-13 04:20:43 +01:00
TW
487d803fa8
Merge pull request #9307 from mr-raj12/bump-ruff-v0.15.0
ruff: bump to v0.15.0, migrate config to tool.ruff.lint, fixes #9305
2026-02-13 04:18:19 +01:00
TW
74a9cb0ae6
Merge pull request #9299 from mr-raj12/add-workflow-timeouts
ci: add missing timeout-minutes to codeql, backport, and lint workflows
2026-02-13 04:14:10 +01:00
Mrityunjay Raj
cf20f8c5bc ci: add concurrency groups to cancel stale workflow runs, fixes #9310 2026-02-13 04:18:20 +05:30
Mrityunjay Raj
48ca497996 ruff: bump to v0.15.0, migrate config to tool.ruff.lint, fixes #9305 2026-02-13 02:36:43 +05:30
Mrityunjay Raj
51c376f500 CI: replace deprecated git.io shortlink in CodeQL workflow, fixes #9300 2026-02-13 01:42:50 +05:30
Mrityunjay Raj
2b83e0e0f0 ci: add missing timeout-minutes to codeql, backport, and lint workflows
ci.yml already has timeout-minutes on every job, but these three
workflows had no timeout configured. Without an explicit timeout,
GitHub Actions defaults to 6 hours, wasting CI minutes if a job
gets stuck.

Added timeouts consistent with ci.yml:
- codeql-analysis.yml: 20 min (builds from source + analysis)
- backport.yml: 5 min (simple checkout + PR creation)
- black.yaml: 5 min (matches ci.yml ruff lint job)

Fixes #9298
2026-02-13 01:15:28 +05:30
Thomas Waldmann
7ef2c258bb
CI: enable Codecov Test Analytics
Enable JUnit XML generation for `native_tests` and `windows_tests` to allow Codecov to process test analytics.

Upload the generated `test-results.xml` using `codecov/codecov-action`.

The upload step uses `if: !cancelled()` to ensure results are uploaded even if tests fail (to analyze failures), but skipped if the workflow is explicitly cancelled.

Originally brought up in PR #8752 by @katia-sentry, but missed the !cancelled() check.

Also: upgrade to codecov-action@v5.
2026-02-10 17:08:54 +01:00
Thomas Waldmann
d870d9517f
CI: cache needs to consider runner.arch
Seen this on the macOS arm64 runner:

ImportError: dlopen(/Users/runner/work/borg/borg/.tox/py311-none/lib/python3.11/site-packages/_argon2_cffi_bindings/_ffi.abi3.so, 0x0002): tried: '/Users/runner/work/borg/borg/.tox/py311-none/lib/python3.11/site-packages/_argon2_cffi_bindings/_ffi.abi3.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/runner/work/borg/borg/.tox/py311-none/lib/python3.11/site-packages/_argon2_cffi_bindings/_ffi.abi3.so' (no such file), '/Users/runner/work/borg/borg/.tox/py311-none/lib/python3.11/site-packages/_argon2_cffi_bindings/_ffi.abi3.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
2026-02-09 12:14:08 +01:00
Thomas Waldmann
a2b47c7439
CI: cache tox environments 2026-01-31 08:06:11 +01:00
Thomas Waldmann
e78c299e71
CI: remove redundant tox runs
Some tox envs are run when opening a PR, so we
do not need to run them again at merge time.
2026-01-31 07:31:09 +01:00
Thomas Waldmann
33a63fa924
CI: parallelize better, avoid unnecessary steps 2026-01-31 07:21:48 +01:00
Thomas Waldmann
85b2ca284e
CI: enable windows testing 2026-01-27 22:35:23 +01:00
Thomas Waldmann
ee3373c5e3
build borg.exe in dist/binary 2026-01-27 22:09:20 +01:00
Thomas Waldmann
d602cf23a5
CI: faster with borg-dir/borg.exe, fixes #9236
The single-file borg.exe needs unpacking each time it is invoked.
borg-dir/borg.exe is alread unpacked.

Also, macOS is slow when a "new" binary is first invoked, so
this should help there even more.
2025-12-26 20:22:52 +01:00
Thomas Waldmann
98aa125386
add requirements file for pyinstaller
make it easy to change pyinstaller version.
2025-12-23 18:52:22 +01:00
Thomas Waldmann
7ccbb33f84
rename tox envs after fuse lib name
Also: on freebsd, run tox env py311-mfusepy
2025-12-20 19:47:36 +01:00
Thomas Waldmann
d27cb58faf
CI: use macos-15-intel to build the x86_64 binary 2025-12-16 20:15:52 +01:00
Thomas Waldmann
ac73be4b09
CI: use macOS 15 for binary builds
Github EOLed all other macOS Intel action runners.

As Apple Silicon users tend to have more
recent OSes, we bump that to macOS 15 also.
2025-12-15 17:40:51 +01:00
Thomas Waldmann
ddcf61b5db
CI: increase timeout 2025-12-15 17:35:12 +01:00
Thomas Waldmann
fefb4dfd8e
freebsd: fix upload name for artifact zip 2025-12-15 17:33:19 +01:00
Thomas Waldmann
c8f5d6219d
CI: FUSE related fixes/improvements (master)
fixes #9182

- install OS fuse support packages as indicated by the tox env.
  on the macOS runners, we do not have any fuse support.
  on the linux runners, we may have fuse2 or fuse3.
  on FreeBSD, we have fuse2.
- install fuse python library for binary build
- first build/upload binaries, then run tests (including binary tests).
  early uploading makes inspection of a malfunctioning binary possible.
- for now, use llfuse, as there is an issue with pyinstaller and pyfuse3.

Also:
- remove || true - this just hides errors, not what we want.
2025-12-15 17:29:11 +01:00
TW
425fa1c77a
fix pynacl/libsodium build on freebsd (#9214)
Some checks failed
Lint / lint (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / security (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
CI / asan_ubsan (push) Has been cancelled
CI / native_tests (push) Has been cancelled
CI / vm_tests (Haiku, false, haiku, r1beta5) (push) Has been cancelled
CI / vm_tests (NetBSD, false, netbsd, 10.1) (push) Has been cancelled
CI / vm_tests (OpenBSD, false, openbsd, 7.7) (push) Has been cancelled
CI / vm_tests (borg-freebsd-14-x86_64-gh, FreeBSD, true, freebsd, 14.3) (push) Has been cancelled
CI / windows_tests (push) Has been cancelled
2025-12-06 15:30:26 +01:00
Thomas Waldmann
9a0122995c
CI: netbsd: enable xattrs on TMPDIR 2025-11-21 12:41:59 +01:00
Thomas Waldmann
9f0b3c4ff3
CI: remove "|| true" 2025-11-09 15:12:23 +01:00
Thomas Waldmann
b0ddb15733
CI: rather use tox as test runner
so that pytest options are centrally managed in tox configuration.

let tox build venv and install requirements.

tox does this anyway, so we save some time if we
do not need the venv for other purposes also
(like e.g. building binaries).

Also:
- default XDISTN to "auto". XDISTN is still used by Vagrantfile.
- some other optimisations, like less package manager calls.
- use XDISTN=1 for haiku
- fix freebsd binary build condition
2025-11-08 00:07:19 +01:00