From 28bd4d1bc61532b80d4581d0b2526f02884835f0 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Fri, 15 Mar 2024 15:12:48 +0100 Subject: [PATCH] github CI: misc updates - move most Linux tests to ubuntu 22.04 - macOS: run on macos-14 (on Apple Silicon!) - macOS: use OpenSSL 3.0 from brew - macOS: run with Python 3.11 - pip install -e .: add -v - trigger CI run for changed .toml files - use up-to-date github actions - remove libb2 references - since borg 1.2, we use blake2 indirectly via python stdlib --- .github/workflows/ci.yml | 31 ++++++++++++++------------- .github/workflows/codeql-analysis.yml | 12 +++++------ .github/workflows/windows.yml | 2 +- Brewfile | 2 +- docs/global.rst.inc | 1 - 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 616a6e238..7445fad5d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,6 +11,7 @@ on: - '**.c' - '**.h' - '**.yml' + - '**.toml' - '**.cfg' - '**.ini' - 'requirements.d/*' @@ -23,6 +24,7 @@ on: - '**.c' - '**.h' - '**.yml' + - '**.toml' - '**.cfg' - '**.ini' - 'requirements.d/*' @@ -35,7 +37,7 @@ jobs: timeout-minutes: 5 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: chartboost/ruff-action@v1 pytest: @@ -48,38 +50,38 @@ jobs: - os: ubuntu-20.04 python-version: '3.9' toxenv: py39-fuse2 - - os: ubuntu-20.04 + - os: ubuntu-22.04 python-version: '3.10' toxenv: py310-fuse3 - - os: ubuntu-20.04 + - os: ubuntu-22.04 python-version: '3.11' toxenv: py311-fuse2 - os: ubuntu-22.04 python-version: '3.12' toxenv: py312-fuse3 - - os: macos-12 - python-version: '3.9' - toxenv: py39-none # note: no fuse testing, due to #6099, see also #6196. + - os: macos-14 + python-version: '3.11' + toxenv: py311-none # note: no fuse testing, due to #6099, see also #6196. env: # Configure pkg-config to use OpenSSL from Homebrew - PKG_CONFIG_PATH: "/usr/local/opt/openssl@1.1/lib/pkgconfig:$PKG_CONFIG_PATH" + PKG_CONFIG_PATH: "/usr/local/opt/openssl@3.0/lib/pkgconfig:$PKG_CONFIG_PATH" TOXENV: ${{ matrix.toxenv }} runs-on: ${{ matrix.os }} timeout-minutes: 180 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: # just fetching 1 commit is not enough for setuptools-scm, so we fetch all fetch-depth: 0 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Cache pip - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('requirements.d/development.txt') }} @@ -93,7 +95,6 @@ jobs: sudo apt-get update sudo apt-get install -y libssl-dev libacl1-dev liblz4-dev libzstd-dev pkg-config build-essential sudo apt-get install -y libxxhash-dev || true - sudo apt-get install -y libb2-dev || true sudo apt-get install -y libfuse-dev fuse || true # Required for Python llfuse module sudo apt-get install -y libfuse3-dev fuse3 || true # Required for Python pyfuse3 module @@ -109,20 +110,20 @@ jobs: env: # we already have that in the global env, but something is broken and overwrites that. # so, set it here, again. - PKG_CONFIG_PATH: "/usr/local/opt/openssl@1.1/lib/pkgconfig:$PKG_CONFIG_PATH" + PKG_CONFIG_PATH: "/usr/local/opt/openssl@3.0/lib/pkgconfig:$PKG_CONFIG_PATH" run: | - pip install -e . + pip install -ve . - name: run pytest via tox env: # we already have that in the global env, but something is broken and overwrites that. # so, set it here, again. - PKG_CONFIG_PATH: "/usr/local/opt/openssl@1.1/lib/pkgconfig:$PKG_CONFIG_PATH" + PKG_CONFIG_PATH: "/usr/local/opt/openssl@3.0/lib/pkgconfig:$PKG_CONFIG_PATH" run: | # do not use fakeroot, but run as root. avoids the dreaded EISDIR sporadic failures. see #2482. #sudo -E bash -c "tox -e py" tox --skip-missing-interpreters - name: Upload coverage to Codecov - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v4 env: OS: ${{ runner.os }} python: ${{ matrix.python-version }} diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 3d0dfe89d..35bca42d6 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -14,7 +14,7 @@ on: jobs: analyze: name: Analyze - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 permissions: actions: read contents: read @@ -29,16 +29,16 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: # just fetching 1 commit is not enough for setuptools-scm, so we fetch all fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: - python-version: 3.9 + python-version: 3.11 - name: Cache pip - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('requirements.d/development.txt') }} @@ -64,6 +64,6 @@ jobs: python3 -m venv ../borg-env source ../borg-env/bin/activate pip3 install -r requirements.d/development.txt - pip3 install -e . + pip3 install -ve . - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index f42df65a8..ce7f6f2ce 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -8,7 +8,7 @@ jobs: run: shell: msys2 {0} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: msys2/setup-msys2@v2 diff --git a/Brewfile b/Brewfile index d0ebf1e11..cefb1d3cd 100644 --- a/Brewfile +++ b/Brewfile @@ -2,7 +2,7 @@ brew 'pkg-config' brew 'zstd' brew 'lz4' brew 'xxhash' -brew 'openssl@1.1' +brew 'openssl@3.0' # osxfuse (aka macFUSE) is only required for "borg mount", # but won't work on github actions' workers. diff --git a/docs/global.rst.inc b/docs/global.rst.inc index 14725f731..b0a1f05d1 100644 --- a/docs/global.rst.inc +++ b/docs/global.rst.inc @@ -15,7 +15,6 @@ .. _libattr: https://savannah.nongnu.org/projects/attr/ .. _liblz4: https://github.com/Cyan4973/lz4 .. _libzstd: https://github.com/facebook/zstd -.. _libb2: https://github.com/BLAKE2/libb2 .. _OpenSSL: https://www.openssl.org/ .. _`Python 3`: https://www.python.org/ .. _Buzhash: https://en.wikipedia.org/wiki/Buzhash