Skip to content

Add basic import with assertions check #48

Add basic import with assertions check

Add basic import with assertions check #48

Workflow file for this run

name: Build
on:
push:
branches-ignore: gh-pages
tags: v*
pull_request: null
jobs:
build_sdist:
name: Build sdist
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Select python
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Build sdist
run: |
python -m pip install build
python -m build --sdist
env:
GSSAPI_SUPPORT_DETECT: false
GSSAPI_LINKER_ARGS: ''
GSSAPI_COMPILER_ARGS: ''
- name: Upload sdist
uses: actions/upload-artifact@v3
with:
name: artifact
path: ./dist/*.tar.gz
build_wheels:
name: Build wheels
needs:
- build_sdist
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
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
steps:
- name: Set up environment
if: startsWith(matrix.os, 'windows-')
shell: bash
run: |
choco.exe install \
--no-progress \
--yes \
--ignore-detected-reboot \
--allow-downgrade \
--install-arguments "'ADDLOCAL=ALL'" \
${{ endsWith(matrix.version, '-win32') && '--x86' || '' }} mitkerberos || true
echo "C:\Program Files${{ endsWith(matrix.version, '-win32') && ' (x86)' || '' }}\MIT\Kerberos\bin;$PATH" >> $GITHUB_PATH
- name: Download gssapi sdist
uses: actions/download-artifact@v3
with:
name: artifact
path: ./
- name: Extract sdist
shell: bash
run: |
tar xf gssapi-*.tar.gz
mv gssapi-*/* .
rm -r gssapi-*/
rm gssapi-*.tar.gz
- name: Build wheel
uses: pypa/cibuildwheel@v2.15.0
env:
CIBW_ARCHS: all
CIBW_TEST_SKIP: '*_arm64'
CIBW_BUILD: ${{ matrix.version }}
CIBW_BUILD_VERBOSITY: 1
- name: Upload wheel
uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl
name: artifact
# 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
steps:
- name: Download gssapi sdist
uses: actions/download-artifact@v3
with:
name: artifact
path: ./dist
- name: Compile Python with assertions
shell: bash
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