From 34fed9c1d38372ee976f184211ec08b4cecdc772 Mon Sep 17 00:00:00 2001 From: Jordan Borean Date: Wed, 30 Aug 2023 07:40:33 +1000 Subject: [PATCH] Add basic import with assertions check Signed-off-by: Jordan Borean --- .github/workflows/ci.yml | 514 +++++++++++++++++++++------------------ setup.py | 2 +- 2 files changed, 276 insertions(+), 240 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 85636ea..1224e9b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,51 +45,51 @@ jobs: include: - os: macOS-12 version: cp312-macosx_x86_64 - - os: macOS-12 - version: cp312-macosx_arm64 - - os: macOS-12 - version: cp311-macosx_x86_64 - - os: macOS-12 - version: cp311-macosx_arm64 - - os: macOS-12 - version: cp310-macosx_x86_64 - - os: macOS-12 - version: cp310-macosx_arm64 - - os: macOS-12 - version: cp39-macosx_x86_64 - - os: macOS-12 - version: cp39-macosx_arm64 - - os: macOS-12 - version: cp38-macosx_x86_64 - - os: macOS-12 - version: cp38-macosx_arm64 - - os: macOS-12 - version: cp37-macosx_x86_64 - - - os: windows-2022 - version: cp312-win_amd64 - - os: windows-2022 - version: cp312-win32 - - os: windows-2022 - version: cp311-win_amd64 - - os: windows-2022 - version: cp311-win32 - - os: windows-2022 - version: cp310-win_amd64 - - os: windows-2022 - version: cp310-win32 - - os: windows-2022 - version: cp39-win_amd64 - - os: windows-2022 - version: cp39-win32 - - os: windows-2022 - version: cp38-win_amd64 - - os: windows-2022 - version: cp38-win32 - - os: windows-2022 - version: cp37-win_amd64 - - os: windows-2022 - version: cp37-win32 + # - os: macOS-12 + # version: cp312-macosx_arm64 + # - os: macOS-12 + # version: cp311-macosx_x86_64 + # - os: macOS-12 + # version: cp311-macosx_arm64 + # - os: macOS-12 + # version: cp310-macosx_x86_64 + # - os: macOS-12 + # version: cp310-macosx_arm64 + # - os: macOS-12 + # version: cp39-macosx_x86_64 + # - os: macOS-12 + # version: cp39-macosx_arm64 + # - os: macOS-12 + # version: cp38-macosx_x86_64 + # - os: macOS-12 + # version: cp38-macosx_arm64 + # - os: macOS-12 + # version: cp37-macosx_x86_64 + + # - os: windows-2022 + # version: cp312-win_amd64 + # - os: windows-2022 + # version: cp312-win32 + # - os: windows-2022 + # version: cp311-win_amd64 + # - os: windows-2022 + # version: cp311-win32 + # - os: windows-2022 + # version: cp310-win_amd64 + # - os: windows-2022 + # version: cp310-win32 + # - os: windows-2022 + # version: cp39-win_amd64 + # - os: windows-2022 + # version: cp39-win32 + # - os: windows-2022 + # version: cp38-win_amd64 + # - os: windows-2022 + # version: cp38-win32 + # - os: windows-2022 + # version: cp37-win_amd64 + # - os: windows-2022 + # version: cp37-win32 steps: - name: Set up environment @@ -134,209 +134,245 @@ jobs: path: ./wheelhouse/*.whl name: artifact - linux: + # linux: + # needs: + # - build_sdist + # - build_wheels + + # runs-on: ubuntu-latest + # strategy: + # fail-fast: false + # matrix: + # name: + # - debian-stable + # - debian-heimdal + # - centos-stream-9 + # - fedora-latest + # include: + # - name: debian-stable + # distro: debian:stable + # - name: debian-heimdal + # distro: debian:stable + # krb5_ver: heimdal + # - name: centos-stream-9 + # distro: quay.io/centos/centos:stream9 + # - name: fedora-latest + # distro: fedora:latest + # flake: 'yes' + + # steps: + # - name: Check out code + # uses: actions/checkout@v3 + + # - name: Download built project + # uses: actions/download-artifact@v3 + # with: + # name: artifact + # path: ./dist + + # - name: Test gssapi + # run: ./ci/run-on-linux.sh ./ci/test.sh + # env: + # DISTRO: ${{ matrix.distro }} + # KRB5_VER: ${{ matrix.krb5_ver }} + # FLAKE: ${{ matrix.flake }} + + # windows: + # needs: + # - build_sdist + # - build_wheels + + # runs-on: windows-latest + # strategy: + # fail-fast: false + # matrix: + # name: + # - win-py-3.12 + # - win-py-3.11 + # - win-py-3.10 + # - win-py-3.9 + # - win-py-3.8 + # - win-py-3.7 + # arch: + # - x64 + # - x86 + # include: + # - name: win-py-3.12 + # pyenv: '3.12.0-rc.1' + # - name: win-py-3.11 + # pyenv: '3.11' + # - name: win-py-3.10 + # pyenv: '3.10' + # - name: win-py-3.9 + # pyenv: '3.9' + # - name: win-py-3.8 + # pyenv: '3.8' + # - name: win-py-3.7 + # pyenv: '3.7' + + # steps: + # - name: Check out code + # uses: actions/checkout@v3 + + # - name: Download built project + # uses: actions/download-artifact@v3 + # with: + # name: artifact + # path: ./dist + + # - name: Install the right python + # uses: actions/setup-python@v4 + # with: + # python-version: ${{ matrix.pyenv }} + # architecture: ${{ matrix.arch }} + + # - name: Test gssapi + # shell: bash + # run: ./ci/test.sh + # env: + # OS_NAME: windows + + # macos: + # needs: + # - build_sdist + # - build_wheels + + # runs-on: macos-latest + # steps: + # - name: Check out code + # uses: actions/checkout@v3 + + # - name: Download built project + # uses: actions/download-artifact@v3 + # with: + # name: artifact + # path: ./dist + + # - name: Test gssapi + # run: ./ci/test.sh + # env: + # KRB5_VER: heimdal + + # To catch issues like this https://github.com/pythongssapi/python-gssapi/issues/327 + assertion_build: needs: - build_sdist - build_wheels runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - name: - - debian-stable - - debian-heimdal - - centos-stream-9 - - fedora-latest - include: - - name: debian-stable - distro: debian:stable - - name: debian-heimdal - distro: debian:stable - krb5_ver: heimdal - - name: centos-stream-9 - distro: quay.io/centos/centos:stream9 - - name: fedora-latest - distro: fedora:latest - flake: 'yes' - steps: - - name: Check out code - uses: actions/checkout@v3 - - - name: Download built project - uses: actions/download-artifact@v3 - with: - name: artifact - path: ./dist - - - name: Test gssapi - run: ./ci/run-on-linux.sh ./ci/test.sh - env: - DISTRO: ${{ matrix.distro }} - KRB5_VER: ${{ matrix.krb5_ver }} - FLAKE: ${{ matrix.flake }} - - windows: - needs: - - build_sdist - - build_wheels - - runs-on: windows-latest - strategy: - fail-fast: false - matrix: - name: - - win-py-3.12 - - win-py-3.11 - - win-py-3.10 - - win-py-3.9 - - win-py-3.8 - - win-py-3.7 - arch: - - x64 - - x86 - include: - - name: win-py-3.12 - pyenv: '3.12.0-rc.1' - - name: win-py-3.11 - pyenv: '3.11' - - name: win-py-3.10 - pyenv: '3.10' - - name: win-py-3.9 - pyenv: '3.9' - - name: win-py-3.8 - pyenv: '3.8' - - name: win-py-3.7 - pyenv: '3.7' - - steps: - - name: Check out code - uses: actions/checkout@v3 - - - name: Download built project + - name: Download gssapi sdist uses: actions/download-artifact@v3 with: name: artifact path: ./dist - - name: Install the right python - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.pyenv }} - architecture: ${{ matrix.arch }} - - - name: Test gssapi + - name: Compile Python with assertions shell: bash - run: ./ci/test.sh - env: - OS_NAME: windows - - macos: - needs: - - build_sdist - - build_wheels - - runs-on: macos-latest - steps: - - name: Check out code - uses: actions/checkout@v3 - - - name: Download built project - uses: actions/download-artifact@v3 - with: - name: artifact - path: ./dist - - - name: Test gssapi - run: ./ci/test.sh - env: - KRB5_VER: heimdal - - publish: - name: publish - - needs: - - linux - - macos - - windows - - runs-on: ubuntu-latest - permissions: - # Needed for OIDC publishing - id-token: write - # Needed for github-pages-deploy-action and other repo write tasks - contents: write - - steps: - - name: Check out code - uses: actions/checkout@v3 - - - name: Download built project - uses: actions/download-artifact@v3 - with: - name: artifact - path: ./dist - - - name: Create GitHub release artifact - run: ./ci/run-on-linux.sh ./ci/create-release-tar.sh - env: - DISTRO: fedora:latest - - - name: Get tarball path - id: tarball - run: echo "tarball=`ls tag_build/*.tar.gz | awk -F/ '{print $2}'`" >> $GITHUB_OUTPUT - - - name: Get release checksum path - id: checksum - run: echo "checksum=`ls tag_build/*.sha512sum | awk -F/ '{print $2}'`" >> $GITHUB_OUTPUT - - - name: Upload tagged build artifact - uses: actions/upload-artifact@v3 - with: - path: tag_build/${{ steps.tarball.outputs.tarball }} - name: artifact - - - name: Deploy stable docs - if: startsWith(github.ref, 'refs/tags/v') - uses: JamesIves/github-pages-deploy-action@v4 - with: - branch: gh-pages - folder: ci_docs_build - target-folder: stable - - - name: Create release - if: startsWith(github.ref, 'refs/tags/v') - uses: actions/create-release@v1 - id: cr - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ github.ref }} - release_name: ${{ github.ref }} - - - name: Upload release tarball - if: startsWith(github.ref, 'refs/tags/v') - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.cr.outputs.upload_url }} - asset_path: tag_build/${{ steps.tarball.outputs.tarball }} - asset_name: ${{ steps.tarball.outputs.tarball }} - asset_content_type: application/octet-stream - - - name: Upload release checksum - if: startsWith(github.ref, 'refs/tags/v') - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.cr.outputs.upload_url }} - asset_path: tag_build/${{ steps.checksum.outputs.checksum }} - asset_name: ${{ steps.checksum.outputs.checksum }} - asset_content_type: text/plain - - - name: Deploy to PyPI - if: startsWith(github.ref, 'refs/tags/v') - uses: pypa/gh-action-pypi-publish@release/v1 + run: | + wget -c https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tar.xz + tar xf Python-3.11.0.tar.xz + cd Python-3.11.5/ + ./configure --with-assertions + make + sudo make altinstall + cd .. + + sudo apt-get update + DEBIAN_FRONTEND=noninteractive sudo apt-get -y install krb5-user libkrb5-dev + + GSSAPI_VER="$( grep 'version=' setup.py | cut -d "'" -f2 )" + /usr/local/bin/python3.11 -m pip install gssapi=="${GSSAPI_VER}" \ + --find-links "file://${PWD}/dist" \ + --verbose + + /usr/local/bin/python3.11 -m pip list + /usr/local/bin/python3.11 -c "import gssapi" + + # publish: + # name: publish + + # needs: + # - linux + # - macos + # - windows + + # runs-on: ubuntu-latest + # permissions: + # # Needed for OIDC publishing + # id-token: write + # # Needed for github-pages-deploy-action and other repo write tasks + # contents: write + + # steps: + # - name: Check out code + # uses: actions/checkout@v3 + + # - name: Download built project + # uses: actions/download-artifact@v3 + # with: + # name: artifact + # path: ./dist + + # - name: Create GitHub release artifact + # run: ./ci/run-on-linux.sh ./ci/create-release-tar.sh + # env: + # DISTRO: fedora:latest + + # - name: Get tarball path + # id: tarball + # run: echo "tarball=`ls tag_build/*.tar.gz | awk -F/ '{print $2}'`" >> $GITHUB_OUTPUT + + # - name: Get release checksum path + # id: checksum + # run: echo "checksum=`ls tag_build/*.sha512sum | awk -F/ '{print $2}'`" >> $GITHUB_OUTPUT + + # - name: Upload tagged build artifact + # uses: actions/upload-artifact@v3 + # with: + # path: tag_build/${{ steps.tarball.outputs.tarball }} + # name: artifact + + # - name: Deploy stable docs + # if: startsWith(github.ref, 'refs/tags/v') + # uses: JamesIves/github-pages-deploy-action@v4 + # with: + # branch: gh-pages + # folder: ci_docs_build + # target-folder: stable + + # - name: Create release + # if: startsWith(github.ref, 'refs/tags/v') + # uses: actions/create-release@v1 + # id: cr + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # tag_name: ${{ github.ref }} + # release_name: ${{ github.ref }} + + # - name: Upload release tarball + # if: startsWith(github.ref, 'refs/tags/v') + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ steps.cr.outputs.upload_url }} + # asset_path: tag_build/${{ steps.tarball.outputs.tarball }} + # asset_name: ${{ steps.tarball.outputs.tarball }} + # asset_content_type: application/octet-stream + + # - name: Upload release checksum + # if: startsWith(github.ref, 'refs/tags/v') + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ steps.cr.outputs.upload_url }} + # asset_path: tag_build/${{ steps.checksum.outputs.checksum }} + # asset_name: ${{ steps.checksum.outputs.checksum }} + # asset_content_type: text/plain + + # - name: Deploy to PyPI + # if: startsWith(github.ref, 'refs/tags/v') + # uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/setup.py b/setup.py index ea8b914..a71967f 100755 --- a/setup.py +++ b/setup.py @@ -274,7 +274,7 @@ def gssapi_modules(lst): setup( name='gssapi', - version='1.8.3', + version='1.8.4', author='The Python GSSAPI Team', author_email='jborean93@gmail.com', packages=['gssapi', 'gssapi.raw', 'gssapi.raw._enum_extensions',