File: cygwin-test.yml

package info (click to toggle)
python-git 3.1.46-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,780 kB
  • sloc: python: 18,814; sh: 186; makefile: 78
file content (93 lines) | stat: -rw-r--r-- 2,763 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
name: test-cygwin

on: [push, 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@v6
      with:
        fetch-depth: 0

    - name: Install Cygwin
      uses: cygwin/cygwin-install-action@v6
      with:
        packages: git python39 python-pip-wheel python-setuptools-wheel python-wheel-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: |
        python3.9 -m venv .venv
        echo 'BASH_ENV=.venv/bin/activate' >>"$GITHUB_ENV"

    - name: Update PyPA packages
      run: |
        python -m pip install -U pip 'setuptools; python_version<"3.12"' wheel

    - name: Install project and test dependencies
      run: |
        pip install '.[test]'

    - 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 }}