59a0a3844c
PR Test AMD / cancel-on-close (push) Has been skipped
PR Test NVIDIA ARM / scan (push) Has been skipped
PR Test NVIDIA / cancel-on-close (push) Has been skipped
PR Test AMD / scan (push) Has been skipped
PR Test NVIDIA ARM / cancel-on-close (push) Has been skipped
PR Test NVIDIA / scan (push) Has been skipped
Release Docker Images / build (cu129-torch-2.11.0) (push) Has been skipped
Release Docker Images / build (cu130-torch-2.11.0) (push) Has been skipped
Release PyPI / publish (push) Has been skipped
Scheduler Python Test / test (push) Successful in 27m19s
Docs / build (push) Successful in 28m8s
Scheduler C++ Test / test (push) Successful in 28m19s
Scheduler C++ Test / test-flat (push) Successful in 28m18s
Docs / deploy (push) Has been cancelled
PR Test AMD / finish (push) Has been cancelled
PR Test NVIDIA / finish (push) Has been cancelled
PR Test NVIDIA ARM / finish (push) Has been cancelled
PR Test NVIDIA ARM / ${{ matrix.name }} (${{ matrix.runner }}) (push) Has been cancelled
PR Test AMD / ${{ matrix.name }} (${{ matrix.runner }}) (push) Has been cancelled
PR Test NVIDIA / ${{ matrix.name }} (${{ matrix.runner }}) (push) Has been cancelled
141 lines
4.0 KiB
YAML
141 lines
4.0 KiB
YAML
name: Build and Release tokenspeed-kernel-amd
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag_name:
|
|
description: "Git tag to create or update. Defaults to tokenspeed-kernel-amd-v<version>."
|
|
required: false
|
|
type: string
|
|
prerelease:
|
|
description: "Mark the GitHub release as a prerelease."
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
|
|
permissions:
|
|
contents: read
|
|
id-token: write
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
metadata:
|
|
name: Resolve release metadata
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
version: ${{ steps.metadata.outputs.version }}
|
|
tag_name: ${{ steps.metadata.outputs.tag_name }}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Resolve release metadata
|
|
id: metadata
|
|
run: |
|
|
VERSION=$(python - <<'PY'
|
|
import pathlib
|
|
import tomllib
|
|
|
|
data = tomllib.loads(pathlib.Path("tokenspeed-kernel-amd/pyproject.toml").read_text())
|
|
print(data["project"]["version"])
|
|
PY
|
|
)
|
|
TAG_NAME="${{ inputs.tag_name }}"
|
|
if [ -z "$TAG_NAME" ]; then
|
|
TAG_NAME="tokenspeed-kernel-amd-v${VERSION}"
|
|
fi
|
|
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
|
|
echo "tag_name=${TAG_NAME}" >> "$GITHUB_OUTPUT"
|
|
echo "Release version: ${VERSION}"
|
|
echo "Release tag: ${TAG_NAME}"
|
|
|
|
build:
|
|
name: Build distributions
|
|
needs: metadata
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Build distributions
|
|
run: |
|
|
python -m pip install --upgrade build twine "setuptools<82" wheel
|
|
python -m build tokenspeed-kernel-amd --sdist --wheel --no-isolation --outdir dist
|
|
python -m twine check dist/*
|
|
|
|
- name: Upload distributions
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: tokenspeed-kernel-amd-dist
|
|
path: dist/*
|
|
|
|
release:
|
|
name: Create wheelhouse release
|
|
needs: [metadata, build]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Download distributions
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
path: dist
|
|
pattern: tokenspeed-kernel-amd-*
|
|
merge-multiple: true
|
|
|
|
- name: Create or update GitHub release
|
|
env:
|
|
GH_TOKEN: ${{ secrets.LIGHTSEEK_BOT_TOKEN }}
|
|
RELEASE_REPOSITORY: lightseekorg/whl
|
|
TAG_NAME: ${{ needs.metadata.outputs.tag_name }}
|
|
VERSION: ${{ needs.metadata.outputs.version }}
|
|
PRERELEASE: ${{ inputs.prerelease }}
|
|
SOURCE_SHA: ${{ github.sha }}
|
|
run: |
|
|
prerelease_args=()
|
|
if [ "$PRERELEASE" = "true" ]; then
|
|
prerelease_args+=(--prerelease)
|
|
fi
|
|
|
|
if gh release view "$TAG_NAME" --repo "$RELEASE_REPOSITORY" >/dev/null 2>&1; then
|
|
gh release upload "$TAG_NAME" dist/* --repo "$RELEASE_REPOSITORY" --clobber
|
|
else
|
|
gh release create "$TAG_NAME" dist/* \
|
|
--repo "$RELEASE_REPOSITORY" \
|
|
--title "tokenspeed-kernel-amd ${VERSION}" \
|
|
--notes "tokenspeed-kernel-amd ${VERSION} built from lightseekorg/tokenspeed@${SOURCE_SHA}" \
|
|
"${prerelease_args[@]}"
|
|
fi
|
|
|
|
publish-pypi:
|
|
name: Publish to PyPI
|
|
needs: [metadata, build]
|
|
runs-on: ubuntu-latest
|
|
environment: pypi
|
|
steps:
|
|
- name: Download distributions
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
path: dist
|
|
pattern: tokenspeed-kernel-amd-*
|
|
merge-multiple: true
|
|
|
|
- name: Publish distributions to PyPI
|
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
with:
|
|
packages-dir: dist
|