Files
LangBot/.github/workflows/core-packaging.yml

44 lines
1.7 KiB
YAML

name: Core packaging boundary
on:
push:
paths: ['plugins/**', 'src/**', 'pyproject.toml', 'MANIFEST.in', '.gitattributes', '.gitignore', '.dockerignore', 'Dockerfile', 'packaging/**', 'scripts/check_core_artifacts.py', '.github/workflows/**']
pull_request:
paths: ['plugins/**', 'src/**', 'pyproject.toml', 'MANIFEST.in', '.gitattributes', '.gitignore', '.dockerignore', 'Dockerfile', 'packaging/**', 'scripts/check_core_artifacts.py', '.github/workflows/**']
workflow_dispatch:
permissions:
contents: read
jobs:
artifacts:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- uses: astral-sh/setup-uv@v5
- name: Check repository release boundaries
run: |
uv run --no-project --with pyyaml python plugins/scripts/test_repository.py
- name: Build Core sdist and wheel without installing Core dependencies
run: |
uv build
python scripts/check_core_artifacts.py dist/*.whl dist/*.tar.gz
- name: Verify Git export excludes plugin sources
run: |
git archive --format=tar --output="$RUNNER_TEMP/core-source.tar" HEAD
python scripts/check_core_artifacts.py "$RUNNER_TEMP/core-source.tar"
- name: Verify the production Docker context exclusion
run: |
docker build --file - --tag langbot-packaging-boundary . <<'DOCKERFILE'
FROM scratch
COPY . /app
DOCKERFILE
docker save langbot-packaging-boundary -o "$RUNNER_TEMP/core-context.tar"
python scripts/check_core_artifacts.py --docker-archive "$RUNNER_TEMP/core-context.tar"