diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..cf9c2e8 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,7 @@ +name: CI +on: [push, pull_request, workflow_dispatch] +permissions: { contents: read } +jobs: + snodec: + uses: SNodeC/.github/.github/workflows/verify.yml@v1.0 + secrets: inherit diff --git a/.github/workflows/native-builds.yml b/.github/workflows/native-builds.yml deleted file mode 100644 index 3be499d..0000000 --- a/.github/workflows/native-builds.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Native builds -on: [push, pull_request, workflow_dispatch] -permissions: - contents: read -jobs: - build: - strategy: - fail-fast: false - matrix: - os: [ubuntu-24.04, windows-2025, macos-15] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - name: Install development dependencies - run: python -m pip install -e ".[dev]" - - name: Linux desktop dependencies - if: runner.os == 'Linux' - run: sudo apt-get update && sudo apt-get install -y libegl1 libopengl0 libxcb-cursor0 libxkbcommon-x11-0 libpulse0 - - name: Tests independent of physical audio devices - env: - QT_QPA_PLATFORM: offscreen - run: python -m pytest -q -m "not audio_device" - - name: Build native package - run: python tools/build.py - - name: Native packaged launch - env: - QT_QPA_PLATFORM: offscreen - shell: bash - run: | - if [[ "$RUNNER_OS" == "macOS" ]]; then - dist/AutoTalk.app/Contents/MacOS/autotalk --smoke-test - elif [[ "$RUNNER_OS" == "Windows" ]]; then - dist/autotalk/autotalk.exe --smoke-test - else - dist/autotalk/autotalk --smoke-test - fi - - uses: actions/upload-artifact@v4 - with: - name: AutoTalk-${{ runner.os }}-${{ runner.arch }} - path: | - dist/AutoTalk-*.tar.gz - dist/AutoTalk-*.zip - dist/AutoTalk-*.dmg - dist/AutoTalk-*.sha256 diff --git a/.snodec/repo.yml b/.snodec/repo.yml new file mode 100644 index 0000000..1ce9507 --- /dev/null +++ b/.snodec/repo.yml @@ -0,0 +1,23 @@ +# Build specifics only; identity lives in SNodeC/.github/catalog.yml. +ci: + profile: python + python_version: '3.12' + pip: .[dev] + native_build: + - python + - tools/build.py + smoke: + Linux: + - dist/autotalk/autotalk + - --smoke-test + Windows: + - dist/autotalk/autotalk.exe + - --smoke-test + macOS: + - dist/AutoTalk.app/Contents/MacOS/autotalk + - --smoke-test + artifact_globs: + - dist/AutoTalk-*.tar.gz + - dist/AutoTalk-*.zip + - dist/AutoTalk-*.dmg + - dist/AutoTalk-*.sha256