Skip to content

Fixed gds parse to use type in the textbody as datatype for the gds l… #550

Fixed gds parse to use type in the textbody as datatype for the gds l…

Fixed gds parse to use type in the textbody as datatype for the gds l… #550

Workflow file for this run

# Workflow to build and test wheels.
name: Wheel builder
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
tags:
- v**
release:
types:
- published
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}-manylinux2014
FALLBACK_TAG: ghcr.io/${{ github.repository }}-manylinux2014:main
jobs:
build-custom-manylinux:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
outputs:
tag: ${{ steps.meta.outputs.tags || env.FALLBACK_TAG }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Get changed Dockerfile
id: changed-files-specific
uses: tj-actions/changed-files@de0eba32790fb9bf87471b32855a30fc8f9d5fc6 #v37.4.0
with:
files: |
Dockerfile-manylinux
- name: Log in to the Container registry
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc #v2.2.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
if: steps.changed-files-specific.outputs.any_changed == 'true'
id: meta
uses: docker/metadata-action@818d4b7b91585d195f67373fd9cb0332e31a7175 #v4.6.0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Build and push Docker image
if: steps.changed-files-specific.outputs.any_changed == 'true'
uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825 #v4.1.1
with:
context: .
file: ./Dockerfile-manylinux
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build_wheels:
name: Build wheel for ${{ matrix.python }}-${{ matrix.buildplat[1] }}
needs: build-custom-manylinux
permissions:
packages: read
runs-on: ${{ matrix.buildplat[0] }}
strategy:
# Ensure that a wheel builder finishes even if another fails
fail-fast: false
matrix:
# Github Actions doesn't support pairing matrix values together, let's improvise
# https://github.com/github/feedback/discussions/7835#discussioncomment-1769026
buildplat:
- [ubuntu-20.04, manylinux_x86_64]
- [macos-13, macosx_x86_64]
#- [ubuntu-20.04, musllinux_x86_64]
#- [windows-2019, win_amd64]
python: ["cp39", "cp310", "cp311", "cp312"] # "pp39"
exclude:
# Don't build PyPy 32-bit windows
- buildplat: [windows-2019, win32]
python: "pp39"
- buildplat: [ ubuntu-20.04, musllinux_x86_64 ]
python: "pp39"
steps:
- name: Checkout Coriolis
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
with:
submodules: true
# https://github.com/actions/checkout/issues/338
fetch-depth: 0
- name: pkg-config-for-win
run: |
choco install -y --checksum 6004DF17818F5A6DBF19CB335CC92702 pkgconfiglite
if: runner.os == 'windows'
# Used to push the built wheels
- uses: actions/setup-python@61a6322f88396a6271a6ee3565807d608ecaddd1 # v4.7.0
with:
python-version: "3.x"
- name: ccache
uses: hendrikmuhs/ccache-action@ca3acd2731eef11f1572ccb126356c2f9298d35e #v1.2.9
with:
key: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
- name: Log in to the Container registry
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc #v2.2.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
if: runner.os == 'linux'
- name: Configure MacOSX Environment
if: runner.os == 'macOS'
run: |
export HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1 HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 HOMEBREW_NO_ENV_HINTS=1
eval "$(brew shellenv)"
brew install -q qt@5 qwt-qt5 rapidjson boost ninja eigen
echo HOMEBREW_PREFIX="$HOMEBREW_PREFIX" >> $GITHUB_ENV
echo CCACHE_DIR="${{ github.workspace }}/.ccache" >> $GITHUB_ENV
echo LDFLAGS="-L$HOMEBREW_PREFIX/opt/qt@5/lib -L$HOMEBREW_PREFIX/opt/qwt-qt5/lib" >> $GITHUB_ENV
echo CPPFLAGS="-I$HOMEBREW_PREFIX/opt/qt@5/include -I$HOMEBREW_PREFIX/opt/qwt-qt5/include" >> $GITHUB_ENV
echo PKG_CONFIG_PATH="$HOMEBREW_PREFIX/opt/qt@5/lib/pkgconfig:$HOMEBREW_PREFIX/opt/qwt-qt5/lib/pkgconfig" >> $GITHUB_ENV
echo CMAKE_FRAMEWORK_PATH="$HOMEBREW_PREFIX/opt/qt@5/lib/cmake/" >> $GITHUB_ENV
- name: Build wheels
uses: pypa/cibuildwheel@66b46d086804a9e9782354100d96a3a445431bca # v2.14.0
env:
CIBW_PRERELEASE_PYTHONS: True
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
CIBW_CONTAINER_ENGINE: "docker; create_args: '--volume=${{ github.workspace }}/.ccache:/.ccache'"
# override before-all in pyproject.toml
CIBW_BEFORE_ALL: ""
CIBW_MANYLINUX_X86_64_IMAGE: ${{ needs.build-custom-manylinux.outputs.tag }}
CIBW_ENVIRONMENT_LINUX: |
USE_CCACHE=1 CCACHE_DIR=/.ccache BOOST_LIBRARYDIR=/usr/lib64/boost169 BOOST_INCLUDEDIR=/usr/include/boost169 PKG_CONFIG_PATH=`python3 -c "import sysconfig; sysconfig.get_config_var('LIBPC')"`
CIBW_BEFORE_BUILD: env
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
with:
name: ${{ matrix.python }}-${{ startsWith(matrix.buildplat[1], 'macosx') && 'macosx' || matrix.buildplat[1] }}
path: ./wheelhouse/*.whl
test_upload_pypi:
# TODO: create an sdist that can build without a custom environment
needs: [build_wheels]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
strategy:
matrix:
buildplat:
- [ubuntu-20.04, manylinux_x86_64]
- [macos-13, macosx_x86_64]
#- [ubuntu-20.04, musllinux_x86_64]
#- [windows-2019, win_amd64]
python: ["cp39", "cp310", "cp311", "cp312"] # "pp39"
exclude:
# Don't build PyPy 32-bit windows
- buildplat: [windows-2019, win32]
python: "pp39"
- buildplat: [ ubuntu-20.04, musllinux_x86_64 ]
python: "pp39"
environment: pypi
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v3
with:
name: ${{ matrix.python }}-${{ startsWith(matrix.buildplat[1], 'macosx') && 'macosx' || matrix.buildplat[1] }}
path: dist
- uses: pypa/gh-action-pypi-publish@f8c70e705ffc13c3b4d1221169b84f12a75d6ca8 #v1.8.8
with:
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
upload_pypi:
# TODO: create an sdist that can build without a custom environment
if: github.event_name == 'release'
needs: [build_wheels]
runs-on: ubuntu-latest
strategy:
matrix:
buildplat:
- [ubuntu-20.04, manylinux_x86_64]
- [macos-13, macosx_x86_64]
#- [ubuntu-20.04, musllinux_x86_64]
#- [windows-2019, win_amd64]
python: ["cp39", "cp310", "cp311", "cp312"] # "pp39"
exclude:
# Don't build PyPy 32-bit windows
- buildplat: [windows-2019, win32]
python: "pp39"
- buildplat: [ ubuntu-20.04, musllinux_x86_64 ]
python: "pp39"
environment: pypi
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v3
with:
name: ${{ matrix.python }}-${{ startsWith(matrix.buildplat[1], 'macosx') && 'macosx' || matrix.buildplat[1] }}
path: dist
- uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
# build_sdist:
# name: Build sdist
# runs-on: ubuntu-latest
# steps:
# - name: Checkout Coriolis
# uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
# with:
# submodules: true
# fetch-depth: 0
# # Used to push the built wheels
# - uses: actions/setup-python@61a6322f88396a6271a6ee3565807d608ecaddd1 # v4.7.0
# with:
# # Build sdist on lowest supported Python
# python-version: "3.9"
# - name: Build sdist
# run: |
# python -m pip install build
# python -m build -s
# - name: Test the sdist
# run: |
# # TODO: Don't run test suite, and instead build wheels from sdist
# # Depends on pypa/cibuildwheel#1020
# python -m pip install dist/*.gz
# #cd .. # Can't import numpy within numpy src directory
# #python -c "import numpy, sys; print(numpy.__version__); sys.exit(numpy.test() is False)"
#
# - name: Check README rendering for PyPI
# run: |
# python -mpip install twine
# twine check dist/*
#
# - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
# with:
# name: sdist
# path: ./dist/*
#