Skip to content

Emit checksums and manifests for RPM packages #134

Emit checksums and manifests for RPM packages

Emit checksums and manifests for RPM packages #134

name: TurtleTerm Script Checks
on:
pull_request:
paths:
- 'assets/sourceos/**'
- 'docs/sourceos/**'
- 'integrations/neovim/**'
- 'packaging/homebrew/**'
- 'packaging/linux/**'
- 'packaging/scripts/**'
- 'README.md'
- '.github/workflows/turtle-term-scripts.yml'
push:
branches:
- main
paths:
- 'assets/sourceos/**'
- 'docs/sourceos/**'
- 'integrations/neovim/**'
- 'packaging/homebrew/**'
- 'packaging/linux/**'
- 'packaging/scripts/**'
- 'README.md'
- '.github/workflows/turtle-term-scripts.yml'
workflow_dispatch:
jobs:
script-checks:
name: Script and package checks
runs-on: ubuntu-24.04
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Install metadata validators
run: |
sudo apt-get update
sudo apt-get install -y desktop-file-utils appstream lua5.4
- name: Check shell syntax
run: |
bash -n packaging/scripts/install-turtle-term.sh
bash -n packaging/scripts/package-turtle-term.sh
bash -n packaging/scripts/bootstrap-homebrew-tap.sh
bash -n packaging/scripts/stage-linux-package.sh
bash -n packaging/scripts/stage-macos-app.sh
bash -n packaging/scripts/verify-linux-package-layout.sh
bash -n packaging/scripts/build-deb-package.sh
bash -n packaging/scripts/verify-deb-package.sh
bash -n packaging/scripts/build-rpm-package.sh
bash -n packaging/scripts/verify-rpm-package.sh
bash -n packaging/scripts/verify-arch-package-metadata.sh
- name: Validate Linux desktop metadata
run: |
desktop-file-validate assets/sourceos/desktop/ai.sourceos.TurtleTerm.desktop
appstreamcli validate --no-net assets/sourceos/desktop/ai.sourceos.TurtleTerm.metainfo.xml
- name: Verify Linux package layout
run: bash packaging/scripts/verify-linux-package-layout.sh
- name: Check Lua syntax
run: |
luac5.4 -p integrations/neovim/turtle.nvim/plugin/turtle.lua
luac5.4 -p integrations/neovim/turtle.nvim/lua/turtle.lua
- name: Check Python syntax
run: |
python3 -m py_compile packaging/scripts/render-stable-homebrew-formula.py
python3 -m py_compile packaging/scripts/write-turtle-term-manifest.py
python3 -m py_compile packaging/scripts/verify-turtle-term-artifact.py
python3 -m py_compile assets/sourceos/bin/sourceos-term
python3 -m py_compile assets/sourceos/bin/turtle-term
python3 -m py_compile assets/sourceos/tests/test_sourceos_term_smoke.py
python3 -m py_compile assets/sourceos/tests/test_turtle_term_branding.py
python3 -m py_compile assets/sourceos/tests/test_turtle_term_release_readiness.py
python3 -m py_compile assets/sourceos/tests/test_turtle_agentic_integration_plan.py
python3 -m py_compile assets/sourceos/tests/test_turtle_product_identity.py
python3 -m py_compile assets/sourceos/tests/test_turtle_linux_desktop_identity.py
python3 -m py_compile assets/sourceos/tests/test_turtle_neovim_integration.py
python3 -m py_compile assets/sourceos/tests/test_turtle_linux_native_packaging.py
- name: Run smoke test
run: python3 assets/sourceos/tests/test_sourceos_term_smoke.py
- name: Run branding guard
run: python3 assets/sourceos/tests/test_turtle_term_branding.py
- name: Run product identity guard
run: python3 assets/sourceos/tests/test_turtle_product_identity.py
- name: Run Linux desktop identity guard
run: python3 assets/sourceos/tests/test_turtle_linux_desktop_identity.py
- name: Run Linux native packaging guard
run: python3 assets/sourceos/tests/test_turtle_linux_native_packaging.py
- name: Run Neovim integration guard
run: python3 assets/sourceos/tests/test_turtle_neovim_integration.py
- name: Run package readiness guard
run: python3 assets/sourceos/tests/test_turtle_term_release_readiness.py
- name: Run agentic integration guard
run: python3 assets/sourceos/tests/test_turtle_agentic_integration_plan.py