1.7.1dev: merge [17896] from 1.6-stable (fix for #13877) #151
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: build | |
| on: | |
| push: | |
| branches: ['**'] | |
| tags: ['trac-*'] | |
| pull_request: | |
| branches: ['**'] | |
| concurrency: | |
| group: ${{ github.workflow }}--${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| posix-test-minimum: | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 30 | |
| needs: [posix-prepare] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-22.04, macos-14] | |
| python-version: ['3.12'] | |
| tests: [functional] | |
| env: | |
| MATRIX_TESTS: ${{ matrix.tests }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Set up pip cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ matrix.os }}--pip-py${{ matrix.python-version }}--${{ hashFiles('.github/requirements-minimum.txt') }} | |
| - name: Run tests | |
| run: . .github/posix-test-minimum.sh | |
| - name: Upload log files | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: log-${{ matrix.os }}--py${{ matrix.python-version }}-minimum-${{ job.status }} | |
| path: | | |
| testenv/*.log | |
| testenv/trac/log | |
| geckodriver.log | |
| if-no-files-found: ignore | |
| posix-test: | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 50 | |
| needs: [posix-prepare] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - {os: ubuntu-22.04, python-version: '3.12', tracdb: sqlite, tests: functional} | |
| - {os: ubuntu-22.04, python-version: '3.12', tracdb: postgresql, tests: functional} | |
| - {os: ubuntu-22.04, python-version: '3.12', tracdb: mysql, tests: functional} | |
| - {os: ubuntu-22.04, python-version: '3.12', tracdb: ''} | |
| - {os: ubuntu-22.04, python-version: '3.11', tracdb: ''} | |
| - {os: ubuntu-22.04, python-version: '3.10', tracdb: ''} | |
| - {os: ubuntu-22.04, python-version: '3.9', tracdb: ''} | |
| - {os: ubuntu-22.04, python-version: '3.8', tracdb: ''} | |
| - {os: ubuntu-22.04, python-version: '3.7', tracdb: ''} | |
| - {os: macos-14, python-version: '3.12', tracdb: sqlite, tests: functional} | |
| - {os: macos-14, python-version: '3.12', tracdb: postgresql} | |
| - {os: macos-14, python-version: '3.12', tracdb: mysql} | |
| - {os: macos-14, python-version: '3.12', tracdb: ''} | |
| - {os: macos-14, python-version: '3.11', tracdb: ''} | |
| env: | |
| MATRIX_OS: ${{ matrix.os }} | |
| MATRIX_TRACDB: ${{ matrix.tracdb }} | |
| MATRIX_TESTS: ${{ matrix.tests }} | |
| PIP_NO_PYTHON_VERSION_WARNING: '1' | |
| PIP_DISABLE_PIP_VERSION_CHECK: '1' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Set up pip cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ matrix.os }}--pip-py${{ matrix.python-version }}--${{ hashFiles('.github/requirements.txt') }} | |
| - name: Set up svn python cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/venv/lib/libsvn_* | |
| ~/venv/lib/python*.*/site-packages/svn | |
| ~/venv/lib/python*.*/site-packages/libsvn | |
| key: ${{ matrix.os }}--svn-py${{ matrix.python-version }} | |
| - name: Run tests | |
| run: . .github/posix-test.sh | |
| - name: Upload log files | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: log-${{ matrix.os }}--py${{ matrix.python-version }}-${{ matrix.tracdb }}-${{ job.status }} | |
| path: | | |
| testenv/*.log | |
| testenv/trac/log | |
| geckodriver.log | |
| if-no-files-found: ignore | |
| posix-prepare: | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 50 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - {os: ubuntu-22.04, python-version: '3.12'} | |
| - {os: ubuntu-22.04, python-version: '3.11'} | |
| - {os: ubuntu-22.04, python-version: '3.10'} | |
| - {os: ubuntu-22.04, python-version: '3.9'} | |
| - {os: ubuntu-22.04, python-version: '3.8'} | |
| - {os: ubuntu-22.04, python-version: '3.7'} | |
| - {os: macos-14, python-version: '3.12'} | |
| - {os: macos-14, python-version: '3.11'} | |
| env: | |
| MATRIX_OS: ${{ matrix.os }} | |
| PIP_NO_PYTHON_VERSION_WARNING: '1' | |
| PIP_DISABLE_PIP_VERSION_CHECK: '1' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Checkout py3c | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: encukou/py3c | |
| ref: v1.4 | |
| path: py3c | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Set up pip cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ matrix.os }}--pip-py${{ matrix.python-version }}--${{ hashFiles('.github/requirements.txt') }} | |
| - name: Set up svn python cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/venv/lib/libsvn_* | |
| ~/venv/lib/python*.*/site-packages/svn | |
| ~/venv/lib/python*.*/site-packages/libsvn | |
| key: ${{ matrix.os }}--svn-py${{ matrix.python-version }} | |
| - name: Prepare dependencies | |
| run: . .github/posix-prepare.sh | |
| windows-test-minimum: | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 30 | |
| needs: [windows-prepare] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-2022] | |
| architecture: [x64] | |
| python-version: ['3.12'] | |
| tests: [functional] | |
| env: | |
| MATRIX_TESTS: ${{ matrix.tests }} | |
| defaults: | |
| run: | |
| shell: pwsh | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Set up pip cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~\AppData\Local\pip\Cache | |
| key: ${{ matrix.os }}--pip-py${{ matrix.python-version }}--${{ hashFiles('.github/requirements-minimum.txt') }} | |
| - name: Run tests | |
| run: . .github\windows-test-minimum.ps1 | |
| - name: Upload log files | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: log-${{ matrix.os }}--py${{ matrix.python-version }}-minimum-${{ job.status }} | |
| path: | | |
| testenv/*.log | |
| testenv/trac/log | |
| geckodriver.log | |
| if-no-files-found: ignore | |
| windows-test: | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 80 | |
| needs: [windows-prepare] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-2022] | |
| architecture: [x64] | |
| python-version: ['3.12'] | |
| subversion-version: ['1.14.3'] | |
| tracdb: ['', sqlite, postgresql, mysql] | |
| include: | |
| - {tracdb: '', tests: functional} | |
| env: | |
| MATRIX_TRACDB: ${{ matrix.tracdb }} | |
| MATRIX_TESTS: ${{ matrix.tests }} | |
| MATRIX_ARCH: ${{ matrix.architecture }} | |
| MATRIX_PYVER: ${{ matrix.python-version }} | |
| MATRIX_SVNVER: ${{ matrix.subversion-version }} | |
| PIP_NO_PYTHON_VERSION_WARNING: '1' | |
| PIP_DISABLE_PIP_VERSION_CHECK: '1' | |
| defaults: | |
| run: | |
| shell: pwsh | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Set up pip cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~\AppData\Local\pip\Cache | |
| key: ${{ matrix.os }}--pip-py${{ matrix.python-version }}--${{ hashFiles('.github/requirements.txt') }} | |
| - name: Set up svn cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~\AppData\Local\subversion-${{ matrix.subversion-version }}\${{ matrix.architecture }} | |
| key: ${{ matrix.os }}--${{ matrix.architecture }}-svn${{ matrix.subversion-version }}-py${{ matrix.python-version }} | |
| - name: Run tests | |
| run: . .github\windows-test.ps1 | |
| - name: Upload log files | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: log-${{ matrix.os }}--py${{ matrix.python-version }}-${{ matrix.tracdb }}-${{ job.status }} | |
| path: | | |
| testenv/*.log | |
| testenv/trac/log | |
| geckodriver.log | |
| if-no-files-found: ignore | |
| windows-prepare: | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 50 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-2022] | |
| architecture: [x64] | |
| python-version: ['3.12'] | |
| subversion-version: ['1.14.3'] | |
| env: | |
| MATRIX_ARCH: ${{ matrix.architecture }} | |
| MATRIX_PYVER: ${{ matrix.python-version }} | |
| MATRIX_SVNVER: ${{ matrix.subversion-version }} | |
| PIP_NO_PYTHON_VERSION_WARNING: '1' | |
| PIP_DISABLE_PIP_VERSION_CHECK: '1' | |
| defaults: | |
| run: | |
| shell: pwsh | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Checkout py3c | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: encukou/py3c | |
| ref: v1.4 | |
| path: py3c | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Set up pip cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~\AppData\Local\pip\Cache | |
| key: ${{ matrix.os }}--pip-py${{ matrix.python-version }}--${{ hashFiles('.github/requirements.txt') }} | |
| - name: Set up svn cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~\AppData\Local\subversion-${{ matrix.subversion-version }}\${{ matrix.architecture }} | |
| key: ${{ matrix.os }}--${{ matrix.architecture }}-svn${{ matrix.subversion-version }}-py${{ matrix.python-version }} | |
| - name: Set up vcpkg cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~\AppData\Local\vcpkg\archives | |
| ~\AppData\Local\vcpkg\downloads\7z* | |
| key: ${{ matrix.os }}--${{ matrix.architecture }}-vcpkg--${{ hashFiles('.github/vcpkg.txt') }} | |
| - name: Set up msbuild | |
| uses: microsoft/setup-msbuild@v2 | |
| - name: Prepare dependencies | |
| run: . .github\windows-prepare.ps1 | |
| - name: Upload log files | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: svnlog-${{ matrix.os }}-${{ matrix.architecture }}--${{ matrix.subversion-version }}-py${{ matrix.python-version }} | |
| path: subversion-*\*.log | |
| if-no-files-found: ignore | |
| - name: Upload Subversion binaries | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: svnbin-${{ matrix.os }}-${{ matrix.architecture }}--${{ matrix.subversion-version }}-py${{ matrix.python-version }} | |
| path: ~\AppData\Local\subversion-${{ matrix.subversion-version }} | |
| if-no-files-found: ignore | |
| release: | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 10 | |
| strategy: | |
| matrix: | |
| os: [ubuntu-22.04] | |
| python-version: ['3.12'] | |
| needs: [posix-test-minimum, posix-test, windows-test-minimum, windows-test] | |
| env: | |
| PIP_NO_PYTHON_VERSION_WARNING: '1' | |
| PIP_DISABLE_PIP_VERSION_CHECK: '1' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Set up pip cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ matrix.os }}--pip-py${{ matrix.python-version }}--${{ hashFiles('.github/requirements.txt') }} | |
| - name: Build release packages | |
| run: . .github/release.sh | |
| - name: Upload release packages | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: release | |
| path: dist/Trac-* | |
| if-no-files-found: ignore | |
| - name: Upload release packages to edgewall.org | |
| if: ${{ github.event_name == 'push' && github.repository == 'edgewall/trac' }} | |
| env: | |
| EDGEWALL_KEY_BASE64: ${{ secrets.EDGEWALL_KEY_BASE64 }} | |
| EDGEWALL_HOST_KEY: ${{ secrets.EDGEWALL_HOST_KEY }} | |
| run: . .github/release-upload.sh |