Version 3.4.1 #14
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Continuous Delivery | |
on: | |
workflow_dispatch: | |
release: | |
types: | |
- created | |
permissions: | |
contents: read | |
jobs: | |
pre_flight_check: | |
name: Preflight Checks | |
uses: ./.github/workflows/ci.yml | |
universal-wheel: | |
name: Build Universal Wheel | |
runs-on: ubuntu-latest | |
needs: | |
- pre_flight_check | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: Set up Python | |
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 | |
with: | |
python-version: '3' | |
- name: Update pip, install build | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install build | |
- name: Build Wheel | |
env: | |
CHARSET_NORMALIZER_USE_MYPYC: '0' | |
run: python -m build | |
- name: Upload artifacts | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce | |
with: | |
name: dist | |
path: dist | |
build-wheels: | |
name: Build wheels on ${{ matrix.os }} ${{ matrix.qemu }} | |
runs-on: ${{ matrix.os }} | |
needs: pre_flight_check | |
strategy: | |
matrix: | |
os: [ ubuntu-22.04, windows-latest, macos-13 ] | |
qemu: [ '' ] | |
include: | |
# Split ubuntu job for the sake of speed-up | |
- os: ubuntu-latest | |
qemu: aarch64 | |
- os: ubuntu-latest | |
qemu: ppc64le | |
- os: ubuntu-latest | |
qemu: s390x | |
steps: | |
- name: Checkout | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
submodules: true | |
- name: Set up QEMU | |
if: ${{ matrix.qemu }} | |
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3.2.0 | |
with: | |
platforms: all | |
id: qemu | |
- name: Prepare emulation | |
run: | | |
if [[ -n "${{ matrix.qemu }}" ]]; then | |
# Build emulated architectures only if QEMU is set, | |
# use default "auto" otherwise | |
echo "CIBW_ARCHS_LINUX=${{ matrix.qemu }}" >> $GITHUB_ENV | |
fi | |
shell: bash | |
- name: Setup Python | |
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 | |
- name: Build wheels | |
uses: pypa/cibuildwheel@ee63bf16da6cddfb925f542f2c7b59ad50e93969 # v2.22.0 | |
env: | |
CIBW_BUILD_FRONTEND: build | |
CIBW_ARCHS_MACOS: universal2 | |
CIBW_ENVIRONMENT: CHARSET_NORMALIZER_USE_MYPYC='1' | |
CIBW_TEST_REQUIRES: pytest | |
CIBW_TEST_COMMAND: pytest -c {package} {package}/tests | |
CIBW_SKIP: pp* | |
- name: Upload artifacts | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce | |
with: | |
name: dist | |
path: ./wheelhouse/*.whl | |
checksum: | |
name: Compute hashes | |
runs-on: ubuntu-latest | |
needs: | |
- build-wheels | |
- universal-wheel | |
outputs: | |
hashes: ${{ steps.compute.outputs.hashes }} | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: Download distributions | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a | |
with: | |
name: dist | |
path: dist | |
- name: Collected dists | |
run: | | |
tree dist | |
- name: Generate hashes | |
id: compute # needs.checksum.outputs.hashes | |
working-directory: ./dist | |
run: echo "hashes=$(sha256sum * | base64 -w0)" >> $GITHUB_OUTPUT | |
provenance: | |
needs: checksum | |
uses: slsa-framework/slsa-github-generator/.github/workflows/[email protected] | |
permissions: | |
actions: read | |
id-token: write | |
contents: write | |
with: | |
base64-subjects: ${{ needs.checksum.outputs.hashes }} | |
upload-assets: true | |
compile-generator: true | |
deploy: | |
name: 🚀 Deploy to PyPi | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
permissions: | |
id-token: write | |
contents: write | |
needs: provenance | |
environment: | |
name: pypi | |
url: https://pypi.org/project/charset-normalizer/ | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: Download distributions | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a | |
with: | |
name: dist | |
path: dist | |
- name: Collected dists | |
run: | | |
tree dist | |
- name: Publish package distributions to PyPI | |
uses: pypa/gh-action-pypi-publish@67339c736fd9354cd4f8cb0b744f2b82a74b5c70 # release/v1 | |
- name: Upload dists to GitHub Release | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
run: | | |
gh release upload ${{ github.ref_name }} dist/* --repo ${{ github.repository }} |