mirror of
https://github.com/edgewall/trac.git
synced 2026-02-05 09:46:44 +01:00
git-svn-id: http://trac.edgewall.org/intertrac/log:/branches/1.6-stable@17900 af82e41b-90c4-0310-8c96-b1721e28e2e2
451 lines
12 KiB
YAML
451 lines
12 KiB
YAML
---
|
|
|
|
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
|