FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

prepare new release · gitpython-developers/GitPython@db47516 · GitHub

Repository navigation

test: cover subdirectory discovery and pathspec commands in bare-repository worktrees #2091

test: cover subdirectory discovery and pathspec commands in bare-repository worktrees

test: cover subdirectory discovery and pathspec commands in bare-repository worktrees #2091

Workflow file for this run

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
name: test-cygwin
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
test:
strategy:
matrix:
selection: [fast, perf]
include:
- selection: fast
additional-pytest-args: --ignore=test/performance
- selection: perf
additional-pytest-args: test/performance
fail-fast: false
runs-on: windows-latest
env:
CHERE_INVOKING: "1"
CYGWIN_NOWINPATH: "1"
defaults:
run:
shell: C:\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr "{0}"
steps:
- name: Force LF line endings
run: |
git config --global core.autocrlf false # Affects the non-Cygwin git.
shell: pwsh # Do this outside Cygwin, to affect actions/checkout.
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Install Cygwin
uses: cygwin/cygwin-install-action@v6
with:
packages: curl git python39 python-setuptools-wheel
add-to-path: false # No need to change $PATH outside the Cygwin environment.
- name: Arrange for verbose output
run: |
# Arrange for verbose output but without shell environment setup details.
echo 'set -x' >~/.bash_profile
- name: Special configuration for Cygwin git
run: |
git config --global --add safe.directory "$(pwd)"
git config --global --add safe.directory "$(pwd)/.git"
git config --global core.autocrlf false
- name: Prepare this repo for tests
run: |
./init-tests-after-clone.sh
- name: Set git user identity and command aliases for the tests
run: |
git config --global user.email "travis@ci.com"
git config --global user.name "Travis Runner"
# If we rewrite the user's config by accident, we will mess it up
# and cause subsequent tests to fail
cat test/fixtures/.gitconfig >> ~/.gitconfig
- name: Set up virtual environment
run: |
pip_wheel=/usr/share/python-wheels/pip-26.0.1-py3-none-any.whl
curl -fsSLo "$pip_wheel" https://files.pythonhosted.org/packages/de/f0/c81e05b613866b76d2d1066490adf1a3dbc4ee9d9c839961c3fc8a6997af/pip-26.0.1-py3-none-any.whl
python3.9 -c 'import hashlib, pathlib, sys; assert hashlib.sha256(pathlib.Path(sys.argv[1]).read_bytes()).hexdigest() == sys.argv[2]' "$pip_wheel" bdb1b08f4274833d62c1aa29e20907365a2ceb950410df15fc9521bad440122b
python3.9 -m venv .venv
echo 'BASH_ENV=.venv/bin/activate' >>"$GITHUB_ENV"
- name: Update PyPA packages
run: |
python -m pip install -U 'setuptools; python_version<"3.12"' wheel
- name: Install project and test dependencies
run: |
pip install ./smmap ./gitdb '.[test]'
- name: Show POSIX file ownership
# Cygwin's `ls -ld` reports the NTFS Owner SID via Cygwin's SID-to-uid
# mapping (well-known SIDs by their RID, machine-local accounts by
# 0x30000+RID). That mapping is what Cygwin git's
# `is_path_owned_by_current_user` reduces to, so this is the view that
# determines whether `safe.directory` is consulted.
run: |
ls -ld -- \
"$(pwd)" \
"$(pwd)/.git" \
"${HOME:?HOME is not set}/.gitconfig" \
2>&1 || true
- name: Show NTFS file ownership
# Authoritative NTFS Owner via Get-Acl, with no Cygwin SID-to-uid layer
# in between -- useful for confirming what the Cygwin view reports as
# "Administrators" is the BUILTIN\Administrators SID (S-1-5-32-544).
shell: pwsh
run: |
$paths = @(
"$pwd",
"$pwd\.git",
"$env:USERPROFILE\.gitconfig"
)
foreach ($p in $paths) {
if (Test-Path -LiteralPath $p) {
try {
$owner = (Get-Acl -LiteralPath $p).Owner
} catch {
$owner = "ERROR: $($_.Exception.Message)"
}
"{0,-44} {1}" -f $owner, $p
} else {
"(missing: $p)"
}
}
- name: Show safe.directory entries
run: git config --global --get-all safe.directory
- name: Show version and platform information
run: |
uname -a
command -v git python
git version
python --version
python -c 'import os, sys; print(f"sys.platform={sys.platform!r}, os.name={os.name!r}")'
- name: Test with pytest (${{ matrix.additional-pytest-args }})
run: |
pytest --color=yes -p no:sugar --instafail -vv ${{ matrix.additional-pytest-args }}

Back | FazBrowse Home | New Git URL