Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ci: Remove Linux & macOS from Azure #29171

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Nov 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ artifacts:

on_finish:
- micromamba install codecov
- codecov -e PYTHON_VERSION PLATFORM -n "$PYTHON_VERSION Windows"
- codecov -e PYTHON_VERSION PLATFORM -n "%PYTHON_VERSION% Windows"

on_failure:
# Generate a html for visual tests
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,6 @@ jobs:
ccache \
cm-super \
dvipng \
ffmpeg \
fonts-freefont-otf \
fonts-noto-cjk \
fonts-wqy-zenhei \
Expand Down Expand Up @@ -174,6 +173,9 @@ jobs:
texlive-luatex \
texlive-pictures \
texlive-xetex
if [[ "${{ matrix.name-suffix }}" != '(Minimum Versions)' ]]; then
sudo apt-get install -yy --no-install-recommends ffmpeg poppler-utils
fi
if [[ "${{ matrix.os }}" = ubuntu-20.04 ]]; then
sudo apt-get install -yy --no-install-recommends libopengl0
else # ubuntu-22.04
Expand All @@ -196,8 +198,8 @@ jobs:
done
# Workaround for https://github.com/actions/runner-images/issues/10984
brew uninstall --ignore-dependencies --force [email protected]
brew install ccache ghostscript gobject-introspection gtk4 ninja
brew install --cask font-noto-sans-cjk inkscape
brew install ccache ffmpeg ghostscript gobject-introspection gtk4 imagemagick ninja
brew install --cask font-noto-sans-cjk font-noto-sans-cjk-sc inkscape
;;
esac

Expand Down
225 changes: 60 additions & 165 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,18 +49,6 @@ stages:
- job: Pytest
strategy:
matrix:
Linux_py310:
vmImage: 'ubuntu-20.04' # keep one job pinned to the oldest image
python.version: '3.10'
Linux_py311:
vmImage: 'ubuntu-latest'
python.version: '3.11'
macOS_py310:
vmImage: 'macOS-latest'
python.version: '3.10'
macOS_py311:
vmImage: 'macOS-latest'
python.version: '3.11'
Windows_py310:
vmImage: 'windows-2019' # keep one job pinned to the oldest image
python.version: '3.10'
Expand All @@ -78,63 +66,7 @@ stages:
displayName: 'Use Python $(python.version)'

- bash: |
set -e
case "$AGENT_OS" in
Linux)
echo 'Acquire::Retries "3";' | sudo tee /etc/apt/apt.conf.d/80-retries
sudo apt update
sudo apt install --no-install-recommends \
cm-super \
dvipng \
ffmpeg \
fonts-freefont-otf \
fonts-noto-cjk \
fonts-wqy-zenhei \
gdb \
gir1.2-gtk-3.0 \
graphviz \
inkscape \
language-pack-de \
lcov \
libcairo2 \
libgirepository-1.0-1 \
lmodern \
ninja-build \
poppler-utils \
texlive-fonts-recommended \
texlive-latex-base \
texlive-latex-extra \
texlive-latex-recommended \
texlive-luatex \
texlive-pictures \
texlive-xetex
;;
Darwin)
brew update
# Periodically, Homebrew updates Python and fails to overwrite the
# existing not-managed-by-Homebrew copy without explicitly being told
# to do so. GitHub/Azure continues to avoid fixing their runner images:
# https://github.com/actions/runner-images/issues/9966
# so force an overwrite even if there are no Python updates.
# We don't even care about Homebrew's Python because we use the one
# from UsePythonVersion.
for python_package in $(brew list | grep python@); do
brew unlink ${python_package}
brew link --overwrite ${python_package}
done
# Workaround for https://github.com/actions/runner-images/issues/10984
brew uninstall --ignore-dependencies --force [email protected]
brew install --cask xquartz
brew install ccache ffmpeg imagemagick mplayer ninja pkg-config
brew install --cask font-noto-sans-cjk-sc
;;
Windows_NT)
choco install ninja
;;
*)
exit 1
;;
esac
choco install ninja
displayName: 'Install dependencies'

- bash: |
Expand All @@ -144,23 +76,9 @@ stages:
displayName: 'Install dependencies with pip'

- bash: |
case "$AGENT_OS" in
Linux)
export CPPFLAGS='--coverage -fprofile-abs-path'
;;
Darwin)
export CPPFLAGS='-fprofile-instr-generate=default.%m.profraw'
export CPPFLAGS="$CPPFLAGS -fcoverage-mapping"
;;
Windows_NT)
CONFIG='--config-settings=setup-args=--vsenv'
CONFIG="$CONFIG --config-settings=setup-args=-Dcpp_link_args=-PROFILE"
CONFIG="$CONFIG --config-settings=setup-args=-Dbuildtype=debug"
;;
*)
exit 1
;;
esac
CONFIG='--config-settings=setup-args=--vsenv'
CONFIG="$CONFIG --config-settings=setup-args=-Dcpp_link_args=-PROFILE"
CONFIG="$CONFIG --config-settings=setup-args=-Dbuildtype=debug"

python -m pip install \
--no-build-isolation $CONFIG \
Expand All @@ -175,39 +93,38 @@ stages:

- bash: |
set -e
if [[ "$AGENT_OS" == 'Windows_NT' ]]; then
SESSION_ID=$(python -c "import uuid; print(uuid.uuid4(), end='')")
echo "Coverage session ID: ${SESSION_ID}"
VS=$(ls -d /c/Program\ Files*/Microsoft\ Visual\ Studio/*/Enterprise)
echo "Visual Studio: ${VS}"
DIR="$VS/Common7/IDE/Extensions/Microsoft/CodeCoverage.Console"
if [[ -d $DIR ]]; then
# This is for MSVC 2022 (on windows-latest).
TOOL="$DIR/Microsoft.CodeCoverage.Console.exe"
for f in build/cp*/src/*.pyd; do
echo $f
echo "=============================="
"$TOOL" instrument $f --session-id $SESSION_ID \
--log-level Verbose --log-file instrument.log
cat instrument.log
rm instrument.log
done
echo "Starting $TOOL in server mode"
"$TOOL" collect \
--session-id $SESSION_ID --server-mode \
--output-format cobertura --output extensions.xml \
--log-level Verbose --log-file extensions.log &
VS_VER=2022
else
DIR="$VS"/Team\ Tools/Dynamic\ Code\ Coverage\ Tools/amd64
if [[ -d $DIR ]]; then
# This is for MSVC 2019 (on windows-2019).
VSINSTR="$VS"/Team\ Tools/Performance\ Tools/vsinstr.exe
for f in build/cp*/src/*.pyd; do
"$VSINSTR" $f -Verbose -Coverage
done
TOOL="$DIR/CodeCoverage.exe"
cat > extensions.config << EOF
SESSION_ID=$(python -c "import uuid; print(uuid.uuid4(), end='')")
echo "Coverage session ID: ${SESSION_ID}"
VS=$(ls -d /c/Program\ Files*/Microsoft\ Visual\ Studio/*/Enterprise)
echo "Visual Studio: ${VS}"
DIR="$VS/Common7/IDE/Extensions/Microsoft/CodeCoverage.Console"
if [[ -d $DIR ]]; then
# This is for MSVC 2022 (on windows-latest).
TOOL="$DIR/Microsoft.CodeCoverage.Console.exe"
for f in build/cp*/src/*.pyd; do
echo $f
echo "=============================="
"$TOOL" instrument $f --session-id $SESSION_ID \
--log-level Verbose --log-file instrument.log
cat instrument.log
rm instrument.log
done
echo "Starting $TOOL in server mode"
"$TOOL" collect \
--session-id $SESSION_ID --server-mode \
--output-format cobertura --output extensions.xml \
--log-level Verbose --log-file extensions.log &
VS_VER=2022
else
DIR="$VS"/Team\ Tools/Dynamic\ Code\ Coverage\ Tools/amd64
if [[ -d $DIR ]]; then
# This is for MSVC 2019 (on windows-2019).
VSINSTR="$VS"/Team\ Tools/Performance\ Tools/vsinstr.exe
for f in build/cp*/src/*.pyd; do
"$VSINSTR" $f -Verbose -Coverage
done
TOOL="$DIR/CodeCoverage.exe"
cat > extensions.config << EOF
<CodeCoverage>
<CollectFromChildProcesses>true</CollectFromChildProcesses>
<ModulePaths>
Expand All @@ -217,60 +134,38 @@ stages:
</ModulePaths>
</CodeCoverage>
EOF
echo "Starting $TOOL in server mode"
"$TOOL" collect \
-config:extensions.config -session:$SESSION_ID \
-output:extensions.coverage -verbose &
echo "Started $TOOL"
VS_VER=2019
fi
fi
echo "##vso[task.setvariable variable=VS_COVERAGE_TOOL]$TOOL"
echo "Starting $TOOL in server mode"
"$TOOL" collect \
-config:extensions.config -session:$SESSION_ID \
-output:extensions.coverage -verbose &
echo "Started $TOOL"
VS_VER=2019
fi
fi
echo "##vso[task.setvariable variable=VS_COVERAGE_TOOL]$TOOL"

PYTHONFAULTHANDLER=1 pytest -rfEsXR -n 2 \
--maxfail=50 --timeout=300 --durations=25 \
--junitxml=junit/test-results.xml --cov-report=xml --cov=lib
if [[ -n $SESSION_ID ]]; then
if [[ $VS_VER == 2022 ]]; then
"$TOOL" shutdown $SESSION_ID
echo "Coverage collection log"
echo "======================="
cat extensions.log
else
"$TOOL" shutdown -session:$SESSION_ID
fi

if [[ $VS_VER == 2022 ]]; then
"$TOOL" shutdown $SESSION_ID
echo "Coverage collection log"
echo "======================="
cat extensions.log
else
"$TOOL" shutdown -session:$SESSION_ID
fi
displayName: 'pytest'

- bash: |
case "$AGENT_OS" in
Linux)
lcov --rc lcov_branch_coverage=1 --capture --directory . \
--output-file coverage.info
lcov --rc lcov_branch_coverage=1 --output-file coverage.info \
--extract coverage.info $PWD/src/'*' $PWD/lib/'*'
lcov --rc lcov_branch_coverage=1 --list coverage.info
find . -name '*.gc*' -delete
;;
Darwin)
xcrun llvm-profdata merge -sparse default.*.profraw \
-o default.profdata
xcrun llvm-cov export -format="lcov" build/*/src/*.so \
-instr-profile default.profdata > info.lcov
;;
Windows_NT)
if [[ -f extensions.coverage ]]; then
# For MSVC 2019.
"$VS_COVERAGE_TOOL" analyze -output:extensions.xml \
-include_skipped_functions -include_skipped_modules \
extensions.coverage
rm extensions.coverage
fi
;;
*)
exit 1
;;
esac
if [[ -f extensions.coverage ]]; then
# For MSVC 2019.
"$VS_COVERAGE_TOOL" analyze -output:extensions.xml \
-include_skipped_functions -include_skipped_modules \
extensions.coverage
rm extensions.coverage
fi
displayName: 'Filter C coverage'
condition: succeededOrFailed()
- bash: |
Expand Down
Loading