Commit graph

148 commits

Author SHA1 Message Date
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
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
TW
9202b57e83
Merge pull request #9309 from mr-raj12/add-dependabot-config
ci: add dependabot config for github actions, fixes  #9308
2026-02-13 04:13:35 +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
665a0be186 ci: add dependabot config for github actions, fixes #9308 2026-02-13 03:06:21 +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
Thomas Waldmann
a3e6f63e2a
CI: integrate all OSes into ci.yml 2025-11-07 18:59:15 +01:00
Thomas Waldmann
63e582be6a
CI: add Haiku workflow in haiku.yml 2025-11-07 12:59:04 +01:00
Thomas Waldmann
6dee31c968
CI: add NetBSD workflow in netbsd.yml 2025-11-06 22:35:09 +01:00
Thomas Waldmann
13d6e774a0
CI: add OpenBSD workflow in openbsd.yml 2025-11-06 22:35:08 +01:00
Thomas Waldmann
5855ca4135
CI: add FreeBSD workflow in freebsd.yml 2025-11-06 22:34:59 +01:00
Thomas Waldmann
add19da678
CI: do dynamic code analysis, #6819
Use:
- AddressSanitizer ASan
- UndefinedBehaviorSanitizer UBSan
2025-11-03 20:42:13 +01:00
Thomas Waldmann
4be4609445
CI: run also for tag pushes
Simplifies tag-based binary building and attestation.
2025-11-02 18:45:35 +01:00
Thomas Waldmann
a5c8aed7cf
CI: add GitHub artifact attestations for release binaries (fixes #9134)
- grant id-token and attestations permissions to posix_tests job
- add actions/attest-build-provenance@v1 step for built artifacts

This publishes SLSA-style provenance for our tag builds (only when binaries
are produced) so users can verify the origin of downloaded borg binaries.
2025-11-02 17:17:23 +01:00
Thomas Waldmann
c4a9582fdf
build binaries on github
also:

- speed up CI for PRs
- update README for binaries
2025-10-16 00:37:46 +02:00
Thomas Waldmann
f401ca00f9
backport action: remove debugging step
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 / linux (ubuntu-22.04, 3.10, mypy) (push) Has been cancelled
CI / linux (ubuntu-22.04, 3.10, py310-fuse2) (push) Has been cancelled
CI / linux (ubuntu-22.04, 3.11, docs) (push) Has been cancelled
CI / linux (ubuntu-22.04, 3.11, py311-fuse3) (push) Has been cancelled
CI / linux (ubuntu-24.04, 3.12, py312-fuse3) (push) Has been cancelled
CI / linux (ubuntu-24.04, 3.13, py313-fuse3) (push) Has been cancelled
CI / linux (ubuntu-24.04, 3.14, py314-fuse3) (push) Has been cancelled
CI / macOS (macos-14, 3.11, py311-none) (push) Has been cancelled
CI / windows (push) Has been cancelled
2025-10-12 16:24:36 +02:00
Thomas Waldmann
ee4083eaa7
backport action: fix label_pattern 2025-10-12 16:19:19 +02:00
Thomas Waldmann
126dc4974a
debug backport action 2025-10-12 16:06:25 +02:00
Thomas Waldmann
947007c567
test on Python 3.14 (w/o -dev) 2025-10-09 12:43:16 +02:00
Thomas Waldmann
d27409784e
github actions: use korthout/backport-action 2025-09-23 18:53:08 +02:00
Thomas Waldmann
2c7bec0149
manual corrections/reverts 2025-09-23 14:56:35 +02:00
Thomas Waldmann
f9ec04ddf6
github workflows: fix typos and grammar 2025-09-23 14:53:51 +02:00