Skip to content
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

DO NOT MERGE - CI Testing #342

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
286 changes: 9 additions & 277 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Select python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.9

Expand All @@ -28,9 +28,9 @@ jobs:
GSSAPI_COMPILER_ARGS: ''

- name: Upload sdist
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: artifact
name: artifact-sdist
path: ./dist/*.tar.gz

build_wheels:
Expand All @@ -43,29 +43,6 @@ jobs:
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
Expand Down Expand Up @@ -107,9 +84,9 @@ jobs:
echo "C:\Program Files${{ endsWith(matrix.version, '-win32') && ' (x86)' || '' }}\MIT\Kerberos\bin;$PATH" >> $GITHUB_PATH

- name: Download gssapi sdist
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: artifact
name: artifact-sdist
path: ./

- name: Extract sdist
Expand All @@ -121,260 +98,15 @@ jobs:
rm gssapi-*.tar.gz

- name: Build wheel
uses: pypa/cibuildwheel@v2.15.0
uses: jborean93/cibuildwheel@c753cd282d1e150e2d3f7534a3e25004d6c2cf5f
env:
CIBW_ARCHS: all
CIBW_TEST_SKIP: '*_arm64'
CIBW_BUILD: ${{ matrix.version }}
CIBW_BUILD_VERBOSITY: 1

- name: Upload wheel
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
path: ./wheelhouse/*.whl
name: artifact

# To catch issues like this https://github.com/pythongssapi/python-gssapi/issues/327
assertion_build:
needs:
- build_sdist

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: |
PYTHON_VERSION="3.11.5"
wget --quiet "https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz"
tar xf "Python-${PYTHON_VERSION}.tar.xz"
cd "Python-${PYTHON_VERSION}/"
./configure --with-assertions --prefix "${PWD}/../Python-${PYTHON_VERSION}-build"
make
make install
cd ..

sudo apt-get update
DEBIAN_FRONTEND=noninteractive sudo apt-get -y install krb5-user libkrb5-dev

GSSAPI_VER="$( find ./dist -type f -name 'gssapi-*.tar.gz' -printf "%f\n" | sed -n 's/gssapi-\(.*\)\.tar\.gz/\1/p' )"

PATH="${PWD}/Python-${PYTHON_VERSION}-build/bin:${PATH}"
python3 -m pip install gssapi=="${GSSAPI_VER}" \
--find-links "file://${PWD}/dist" \
--verbose

python3 -c "import gssapi"

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

publish:
name: publish

needs:
- assertion_build
- 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
name: artifact-wheel-${{ matrix.version }}
4 changes: 2 additions & 2 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Select python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.9

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/stale@v4.0.0
- uses: actions/stale@v9.0.0
id: stale
with:
days-before-stale: -1
Expand Down