Skip to content

Alpine Test musllinux-compatible #1112

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

Open
wants to merge 47 commits into
base: 4.x
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
5b68552
Update build_wheels_windows.yml
avdivan May 12, 2025
0ed6932
Update build_wheels_windows.yml
avdivan May 12, 2025
43df361
Update build_wheels_windows.yml
avdivan May 12, 2025
800c408
Update build_wheels_windows.yml
avdivan May 12, 2025
d509950
Update build_wheels_windows.yml
avdivan May 12, 2025
81b57ad
Update build_wheels_windows.yml
avdivan May 12, 2025
cf6f2a1
Update build_wheels_windows.yml
avdivan May 12, 2025
ce9020f
Update build_wheels_windows.yml
avdivan May 12, 2025
5da97ac
Update build_wheels_windows.yml
avdivan May 12, 2025
02ffc4a
Update build_wheels_windows.yml
avdivan May 12, 2025
62aa42c
Update build_wheels_windows.yml
avdivan May 12, 2025
3f50ff6
Update build_wheels_windows.yml
avdivan May 12, 2025
24e5192
Update build_wheels_windows.yml
avdivan May 12, 2025
af76f7a
Update setup.py
avdivan May 13, 2025
8e63c5b
Update setup.py
avdivan May 18, 2025
fb2ce32
Update build_wheels_windows.yml
avdivan May 18, 2025
34c8ef1
Update build_wheels_windows.yml
avdivan May 18, 2025
0d87cdf
Update build_wheels_windows.yml
avdivan May 18, 2025
a8d6375
Update build_wheels_windows.yml
avdivan Jun 9, 2025
d728c91
Update build_wheels_windows.yml
avdivan Jun 9, 2025
5601e19
Update setup.py
avdivan Jun 9, 2025
a397db1
Update build_wheels_windows.yml
avdivan Jun 9, 2025
4721363
Update setup.py
avdivan Jun 9, 2025
b14fc86
Update setup.py
avdivan Jun 9, 2025
eec14cc
Update build_wheels_windows.yml
avdivan Jun 9, 2025
c860bb9
Update setup.py
avdivan Jun 9, 2025
d324320
Update setup.py
avdivan Jun 9, 2025
60d8b85
Update setup.py
avdivan Jun 9, 2025
7dfe2c9
Update build_wheels_windows.yml
avdivan Jun 9, 2025
f8f3ed8
Update build_wheels_windows.yml
avdivan Jun 9, 2025
cebae27
Update setup.py
avdivan Jun 9, 2025
d0b029e
Update setup.py
avdivan Jun 9, 2025
93929b6
Update setup.py
avdivan Jun 9, 2025
aef0562
Update build_wheels_windows.yml
avdivan Jun 9, 2025
878d9f9
Update setup.py
avdivan Jun 9, 2025
da9d1b9
Update build_wheels_windows.yml
avdivan Jun 10, 2025
da2e6b8
Update setup.py
avdivan Jun 10, 2025
8a87290
Update setup.py
avdivan Jun 10, 2025
8b629da
Merge pull request #4 from opencv/4.x
avdivan Jun 19, 2025
560670d
Update build_wheels_macos_m1.yml
avdivan Jun 19, 2025
f85b854
Merge pull request #5 from opencv/4.x
avdivan Jun 20, 2025
10dd63c
Update build_wheels_macos_m1.yml
avdivan Jun 20, 2025
7b587e1
Update build_wheels_windows.yml
avdivan Jun 20, 2025
ea51e72
Update setup.py
avdivan Jun 20, 2025
3362718
Update build_wheels_macos_m1.yml
avdivan Jun 20, 2025
88f1c27
Create Dockerfile-alpine-musllinux-test
avdivan Jun 20, 2025
c17d164
Update Dockerfile-alpine-musllinux-test
avdivan Jun 20, 2025
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
Prev Previous commit
Next Next commit
Update build_wheels_windows.yml
  • Loading branch information
avdivan authored May 12, 2025
commit d5099508f0d34619daab8fde560671607af3b686
225 changes: 120 additions & 105 deletions .github/workflows/build_wheels_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ on:
- cron: '0 3 * * 6'
workflow_dispatch:


jobs:
Build:
runs-on: windows-2019
Expand All @@ -34,53 +35,52 @@ jobs:
ENABLE_CONTRIB: ${{ matrix.with_contrib }}
OPENCV_TEST_DATA_PATH: ${{ github.workspace }}\opencv_extra\testdata
steps:
- name: Cleanup
shell: bash
run: |
rm -rf ./* || true
rm -rf ./.??* || true
working-directory: ${{ github.workspace }}

- name: Setup environment
shell: bash
run: |
if [[ "${{ github.event_name }}" == "schedule" || "${{ github.event_name }}" == "workflow_dispatch" ]]; then
echo "ENABLE_ROLLING=1" >> $GITHUB_ENV
fi

- name: Checkout
uses: actions/checkout@v3
with:
submodules: false
fetch-depth: 0

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.platform }}

- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v1.1

- name: Setup NASM
uses: ilammy/setup-nasm@v1

- name: Build a package
run: |
python --version
python -m pip install --upgrade pip
python -m pip install --upgrade setuptools
python -m pip install cmake==3.24.2
python -m pip install toml && python -c "import toml; c = toml.load('pyproject.toml'); print('\n'.join(c['build-system']['requires']))" >> requirements.txt | python -m pip install -r requirements.txt
set "CI_BUILD=1" && python setup.py bdist_wheel --py-limited-api=cp37 --dist-dir=%cd%\wheelhouse -v
shell: cmd

- name: Upload built wheel
uses: actions/upload-artifact@v4
with:
name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }}-${{ matrix.platform }}-${{ github.run_id }}-${{ github.job }}
path: wheelhouse/opencv*.whl
- name: Cleanup
shell: bash
run: |
rm -rf ./* || true
rm -rf ./.??* || true
working-directory: ${{ github.workspace }}
- name: Setup environment
shell: bash
run: |
if [[ "${{ github.event_name }}" == "schedule" || "${{ github.event_name }}" == "workflow_dispatch" ]]; then
echo "ENABLE_ROLLING=1" >> $GITHUB_ENV
fi
- name: Checkout
uses: actions/checkout@v3
with:
submodules: false
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.platform }}
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v1.1
- name: Setup NASM
uses: ilammy/setup-nasm@v1
- name: Build a package
# CMake 3.25 regression fix. See https://stackoverflow.com/questions/74162633/problem-compiling-from-source-opencv-with-mvsc2019-in-64-bit-version
run: |
python --version
python -m pip install --upgrade pip
python -m pip install --upgrade setuptools
python -m pip install cmake==3.24.2
python -m pip install toml && python -c "import toml; c = toml.load('pyproject.toml'); print('\n'.join(c['build-system']['requires']))" >> requirements.txt | python -m pip install -r requirements.txt
set "CI_BUILD=1" && python setup.py bdist_wheel --py-limited-api=cp37 --dist-dir=%cd%\wheelhouse -v
shell: cmd
- name: Saving all wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: wheelhouse/opencv*.whl
- name: Saving a wheel accordingly to matrix
uses: actions/upload-artifact@v3
with:
name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }}-${{ matrix.platform }}
path: wheelhouse/opencv*

Test:
needs: [Build]
Expand All @@ -101,49 +101,43 @@ jobs:
OPENCV_TEST_DATA_PATH: ${{ github.workspace }}\opencv_extra\testdata
PYLINT_TEST_FILE: ${{ github.workspace }}\opencv\samples\python\squares.py
steps:
- name: Cleanup
shell: bash
run: |
rm -rf ./* || true
rm -rf ./.??* || true
working-directory: ${{ github.workspace }}

- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.platform }}

- name: Download all artifacts
uses: actions/download-artifact@v3
with:
path: wheelhouse/

- name: Find and install matching wheel
shell: powershell
run: |
$pattern = "wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }}-${{ matrix.platform }}-*"
$file = Get-ChildItem -Recurse wheelhouse | Where-Object { $_.Name -like "$pattern*.whl" } | Select-Object -First 1
if (-not $file) { throw "No matching wheel found" }
& python -m pip install --user --no-warn-script-location $file.FullName
python get_build_info.py

- name: Run tests
run: |
cd ${{ github.workspace }}/opencv
python modules\python\test\test.py -v --repo .

- name: Pylint test
run: |
python -m pip install pylint==2.15.9
cd ${{ github.workspace }}\tests
python -m pylint $PYLINT_TEST_FILE
- name: Cleanup
shell: bash
run: |
rm -rf ./* || true
rm -rf ./.??* || true
working-directory: ${{ github.workspace }}
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.platform }}
- name: Download a wheel accordingly to matrix
uses: actions/download-artifact@v3
with:
name: wheel-${{ matrix.with_contrib }}-${{ matrix.without_gui }}-${{ matrix.build_sdist }}-${{ matrix.platform }}
path: wheelhouse/
- name: Package installation
run: |
cd ${{ github.workspace }}/tests
&python -m pip install --user --no-warn-script-location (ls "../wheelhouse/opencv*.whl")
if ($LastExitCode -ne 0) {throw $LastExitCode}
python get_build_info.py
shell: powershell
- name: Run tests
run: |
cd ${{ github.workspace }}/opencv
python modules\python\test\test.py -v --repo .
- name: Pylint test
run: |
python -m pip install pylint==2.15.9
cd ${{ github.workspace }}\tests
python -m pylint $PYLINT_TEST_FILE

Release_rolling:
if: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
Expand All @@ -154,15 +148,26 @@ jobs:
run:
shell: bash
steps:
- name: Download all wheels
uses: actions/download-artifact@v3
- uses: actions/download-artifact@v3
with:
name: wheels
path: wheelhouse/

- name: Upload wheels
- name: Upload wheels for opencv_python_rolling
run: |
python -m pip install twine
python -m twine upload -u ${{ secrets.OPENCV_PYTHON_ROLLING_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_ROLLING_PASSWORD }} --skip-existing wheelhouse/**/*.whl
python -m twine upload -u ${{ secrets.OPENCV_PYTHON_ROLLING_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_ROLLING_PASSWORD }} --skip-existing wheelhouse/opencv_python_rolling-*
- name: Upload wheels for opencv_contrib_python_rolling
run: |
python -m pip install twine
python -m twine upload -u ${{ secrets.OPENCV_CONTRIB_PYTHON_ROLLING_USERNAME }} -p ${{ secrets.OPENCV_CONTRIB_PYTHON_ROLLING_PASSWORD }} --skip-existing wheelhouse/opencv_contrib_python_rolling-*
- name: Upload wheels for opencv_python_headless_rolling
run: |
python -m pip install twine
python -m twine upload -u ${{ secrets.OPENCV_PYTHON_HEADLESS_ROLLING_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_HEADLESS_ROLLING_PASSWORD }} --skip-existing wheelhouse/opencv_python_headless_rolling-*
- name: Upload wheels for opencv_contrib_python_headless_rolling
run: |
python -m pip install twine
python -m twine upload -u ${{ secrets.OPENCV_CONTRIB_PYTHON_HEADLESS_ROLLING_USERNAME }} -p ${{ secrets.OPENCV_CONTRIB_PYTHON_HEADLESS_ROLLING_PASSWORD }} --skip-existing wheelhouse/opencv_contrib_python_headless_rolling-*

Pre-release:
if: github.event_name == 'release' && github.event.release.prerelease
Expand All @@ -173,15 +178,14 @@ jobs:
run:
shell: bash
steps:
- name: Download all wheels
uses: actions/download-artifact@v3
- uses: actions/download-artifact@v3
with:
name: wheels
path: wheelhouse/

- name: Upload all wheels to Test PyPI
- name: Upload all wheels
run: |
python -m pip install twine
python -m twine upload --repository testpypi -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} --skip-existing wheelhouse/**/*.whl
python -m twine upload --repository testpypi -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }} --skip-existing wheelhouse/opencv_*

Release:
if: github.event_name == 'release' && !github.event.release.prerelease
Expand All @@ -192,12 +196,23 @@ jobs:
run:
shell: bash
steps:
- name: Download all wheels
uses: actions/download-artifact@v3
- uses: actions/download-artifact@v3
with:
name: wheels
path: wheelhouse/

- name: Upload all wheels to PyPI
- name: Upload wheels for opencv_python
run: |
python -m pip install twine
python -m twine upload -u ${{ secrets.OPENCV_PYTHON_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_PASSWORD }} --skip-existing wheelhouse/opencv_python-*
- name: Upload wheels for opencv_contrib_python
run: |
python -m pip install twine
python -m twine upload -u ${{ secrets.OPENCV_CONTRIB_PYTHON_USERNAME }} -p ${{ secrets.OPENCV_CONTRIB_PYTHON_PASSWORD }} --skip-existing wheelhouse/opencv_contrib_python-*
- name: Upload wheels for opencv_python_headless
run: |
python -m pip install twine
python -m twine upload -u ${{ secrets.OPENCV_PYTHON_HEADLESS_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_HEADLESS_PASSWORD }} --skip-existing wheelhouse/opencv_python_headless-*
- name: Upload wheels for opencv_contrib_python_headless
run: |
python -m pip install twine
python -m twine upload -u ${{ secrets.OPENCV_PYTHON_USERNAME }} -p ${{ secrets.OPENCV_PYTHON_PASSWORD }} --skip-existing wheelhouse/**/*.whl
python -m twine upload -u ${{ secrets.OPENCV_CONTRIB_PYTHON_HEADLESS_USERNAME }} -p ${{ secrets.OPENCV_CONTRIB_PYTHON_HEADLESS_PASSWORD }} --skip-existing wheelhouse/opencv_contrib_python_headless-*