Files
NeoTachyon/.github/workflows/backend-ci.yml
T
Dushnilin 603c0df91b feat(security,ci,ui): harden CI/CD, LuCI ACL, low-space updates and mobile layout
- ci: make frontend CI read-only with strict diff check and deterministic calls.json
- ci: pin external GitHub Actions in workflows to immutable commit SHAs
- ci: add openwrt-e2e blocking gate job running docker_e2e_test.sh
- fix(diagnostic): fix contstants.ts typo and update all 13 import sites
- fix(acl): remove unused /bin/busybox exec from rpcd ACL and add regression test
- feat(updates): add low-space update fallback when creating sing-box.old is impossible
- fix(routes): preserve dedicated Discord gateway subnets (162.159.128.0/21)
- feat(ui): implement responsive auto-fit grid and mobile modal viewport bounds
- test: add viewport regression test suite in vitest
2026-09-14 23:00:18 +03:00

89 lines
2.5 KiB
YAML

name: Backend CI
permissions:
contents: read
on:
pull_request:
paths:
- 'tachyon/files/**'
- 'tachyon/Makefile'
- 'build.sh'
- 'tests/**'
- 'luci-app-tachyon/**'
- 'fe-app-tachyon/locales/**'
- '.github/workflows/build.yml'
- '.github/workflows/backend-ci.yml'
push:
branches:
- main
paths:
- 'tachyon/files/**'
- 'tachyon/Makefile'
- 'build.sh'
- 'tests/**'
- 'luci-app-tachyon/**'
- 'fe-app-tachyon/locales/**'
- '.github/workflows/build.yml'
- '.github/workflows/backend-ci.yml'
jobs:
backend-checks:
name: Backend Runtime Checks
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
- name: Build ucode
shell: bash
run: |
sudo rm -f /etc/apt/sources.list.d/google-chrome.list
sudo apt-get update
sudo apt-get install -y build-essential cmake git libjson-c-dev pkg-config nodejs curl
git clone --depth 1 --branch v0.0.20250529 https://github.com/jow-/ucode.git /tmp/ucode
cmake -S /tmp/ucode -B /tmp/ucode/build \
-DUBUS_SUPPORT=OFF \
-DUCI_SUPPORT=OFF \
-DULOOP_SUPPORT=OFF
cmake --build /tmp/ucode/build --parallel
sudo cmake --install /tmp/ucode/build
sudo ldconfig
command -v ucode
ucode -e 'print("ucode ready\n")'
- name: Check ucode syntax
shell: bash
run: |
find tachyon/files/usr/lib -name '*.uc' -print0 | xargs -0 -n1 ucode -c -o /dev/null
find tachyon/files/usr/lib -name '*.uc' -print0 | xargs -0 -n1 ucode -S -c -o /dev/null
- name: Run backend tests
shell: bash
run: |
find tests -maxdepth 1 -name '*.sh' \
! -name 'docker_e2e_test.sh' \
! -name 'container_entrypoint.sh' \
! -name 'run_all.sh' \
! -name 'ucode_syntax_lint.sh' \
-print0 | xargs -0 -n1 -P4 bash
openwrt-e2e:
name: OpenWrt Docker E2E
needs: backend-checks
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
- name: Run OpenWrt E2E suite
shell: bash
run: bash tests/docker_e2e_test.sh