mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-10-31 04:45:23 +08:00
44 lines
1.7 KiB
YAML
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"
|