|
1 | | -name: CI |
| 1 | +name: Production CI/CD Pipeline |
2 | 2 |
|
3 | 3 | on: |
4 | | - workflow_dispatch: |
5 | | - repository_dispatch: |
6 | | - types: [dependency-update] |
7 | 4 | push: |
8 | | - branches: [main, master, develop] |
| 5 | + branches: [ main ] |
9 | 6 | pull_request: |
10 | | - branches: [main, master] |
11 | | - |
12 | | -concurrency: |
13 | | - group: ${{ github.workflow }}-${{ github.ref }} |
14 | | - cancel-in-progress: true |
15 | | - |
16 | | -permissions: |
17 | | - contents: read |
| 7 | + branches: [ main ] |
18 | 8 |
|
19 | 9 | jobs: |
20 | | - build: |
21 | | - name: Native (${{ matrix.os }}) |
22 | | - runs-on: ${{ matrix.os }} |
23 | | - strategy: |
24 | | - fail-fast: false |
25 | | - matrix: |
26 | | - os: [ubuntu-latest, windows-latest, macos-latest] |
27 | | - steps: |
28 | | - - uses: actions/checkout@v4 |
29 | | - with: |
30 | | - submodules: recursive |
31 | | - - name: Install dependencies (Linux) |
32 | | - if: runner.os == 'Linux' |
33 | | - run: sudo apt-get update && sudo apt-get install -y libsdl2-dev |
34 | | - - name: Install dependencies (macOS) |
35 | | - if: runner.os == 'macOS' |
36 | | - run: brew install sdl2 |
37 | | - - name: Configure |
38 | | - run: cmake -B build -DBUILD_TESTING=ON |
39 | | - - name: Build |
40 | | - run: cmake --build build --config Release --parallel |
41 | | - - name: Test |
42 | | - run: ctest --test-dir build --output-on-failure -C Release |
43 | | - |
44 | | - build-categories: |
45 | | - name: Category (${{ matrix.category }}) |
| 10 | + build-and-test: |
46 | 11 | runs-on: ubuntu-latest |
47 | | - strategy: |
48 | | - fail-fast: false |
49 | | - matrix: |
50 | | - include: |
51 | | - - category: productivity |
52 | | - flags: -DEAPPS_BUILD_PRODUCTIVITY=ON -DEAPPS_BUILD_MEDIA=OFF -DEAPPS_BUILD_GAMES=OFF -DEAPPS_BUILD_CONNECTIVITY=OFF -DEAPPS_BUILD_SECURITY=OFF -DEAPPS_BUILD_WEB=OFF |
53 | | - - category: media |
54 | | - flags: -DEAPPS_BUILD_PRODUCTIVITY=OFF -DEAPPS_BUILD_MEDIA=ON -DEAPPS_BUILD_GAMES=OFF -DEAPPS_BUILD_CONNECTIVITY=OFF -DEAPPS_BUILD_SECURITY=OFF -DEAPPS_BUILD_WEB=OFF |
55 | | - - category: games |
56 | | - flags: -DEAPPS_BUILD_PRODUCTIVITY=OFF -DEAPPS_BUILD_MEDIA=OFF -DEAPPS_BUILD_GAMES=ON -DEAPPS_BUILD_CONNECTIVITY=OFF -DEAPPS_BUILD_SECURITY=OFF -DEAPPS_BUILD_WEB=OFF |
57 | | - - category: connectivity |
58 | | - flags: -DEAPPS_BUILD_PRODUCTIVITY=OFF -DEAPPS_BUILD_MEDIA=OFF -DEAPPS_BUILD_GAMES=OFF -DEAPPS_BUILD_CONNECTIVITY=ON -DEAPPS_BUILD_SECURITY=OFF -DEAPPS_BUILD_WEB=OFF |
59 | | - - category: security |
60 | | - flags: -DEAPPS_BUILD_PRODUCTIVITY=OFF -DEAPPS_BUILD_MEDIA=OFF -DEAPPS_BUILD_GAMES=OFF -DEAPPS_BUILD_CONNECTIVITY=OFF -DEAPPS_BUILD_SECURITY=ON -DEAPPS_BUILD_WEB=OFF |
61 | | - - category: web |
62 | | - flags: -DEAPPS_BUILD_PRODUCTIVITY=OFF -DEAPPS_BUILD_MEDIA=OFF -DEAPPS_BUILD_GAMES=OFF -DEAPPS_BUILD_CONNECTIVITY=OFF -DEAPPS_BUILD_SECURITY=OFF -DEAPPS_BUILD_WEB=ON |
63 | 12 | steps: |
64 | | - - uses: actions/checkout@v4 |
65 | | - with: |
66 | | - submodules: recursive |
67 | | - - name: Install dependencies |
68 | | - run: sudo apt-get update && sudo apt-get install -y libsdl2-dev |
69 | | - - name: Build ${{ matrix.category }} |
70 | | - run: | |
71 | | - cmake -B build ${{ matrix.flags }} -DEAPPS_BUILD_SUITE=OFF |
72 | | - cmake --build build --parallel |
| 13 | + - uses: actions/checkout@v3 |
73 | 14 |
|
74 | | - sanitize: |
75 | | - name: Sanitizers |
76 | | - runs-on: ubuntu-latest |
77 | | - steps: |
78 | | - - uses: actions/checkout@v4 |
79 | | - with: |
80 | | - submodules: recursive |
81 | | - - name: Install dependencies |
82 | | - run: sudo apt-get update && sudo apt-get install -y libsdl2-dev |
83 | | - - name: Build with ASAN/UBSAN |
84 | | - run: | |
85 | | - cmake -B build \ |
86 | | - -DBUILD_TESTING=ON \ |
87 | | - -DCMAKE_C_FLAGS="-fsanitize=address,undefined -fno-omit-frame-pointer" |
88 | | - cmake --build build --parallel |
89 | | - - name: Run tests |
90 | | - env: |
91 | | - ASAN_OPTIONS: detect_leaks=1:halt_on_error=1 |
92 | | - run: ctest --test-dir build --output-on-failure |
| 15 | + - name: Set up Python |
| 16 | + uses: actions/setup-python@v4 |
| 17 | + with: |
| 18 | + python-style: '3.11' |
93 | 19 |
|
94 | | - js-ts-lane: |
95 | | - name: JS/TS lane (web-apps + browser-extensions + desktop-apps) |
96 | | - runs-on: ubuntu-latest |
97 | | - steps: |
98 | | - - uses: actions/checkout@v4 |
99 | | - with: |
100 | | - submodules: recursive |
101 | | - - uses: actions/setup-node@v4 |
102 | | - with: |
103 | | - node-version: '20' |
104 | | - - uses: pnpm/action-setup@v4 |
105 | | - with: |
106 | | - version: 9 |
107 | | - - name: web-apps lint+build |
108 | | - shell: bash |
109 | | - run: | |
110 | | - set -e |
111 | | - if [ -d web-apps ]; then |
112 | | - for d in web-apps/*/; do |
113 | | - [ -d "$d" ] || continue |
114 | | - if [ -f "$d/package.json" ]; then |
115 | | - echo "=== $d ===" |
116 | | - (cd "$d" && (pnpm install --frozen-lockfile || npm ci) && (pnpm run build || npm run build)) |
117 | | - fi |
118 | | - done |
119 | | - else |
120 | | - echo "::notice::No web-apps/ directory" |
121 | | - fi |
122 | | - - name: browser-extensions lint+build |
123 | | - shell: bash |
124 | | - run: | |
125 | | - set -e |
126 | | - if [ -d browser-extensions ]; then |
127 | | - for d in browser-extensions/*/; do |
128 | | - [ -d "$d" ] || continue |
129 | | - if [ -f "$d/package.json" ]; then |
130 | | - echo "=== $d ===" |
131 | | - (cd "$d" && (pnpm install --frozen-lockfile || npm ci) && (pnpm run build || npm run build)) |
132 | | - fi |
133 | | - done |
134 | | - else |
135 | | - echo "::notice::No browser-extensions/ directory" |
136 | | - fi |
137 | | - - name: desktop-apps lint+build |
138 | | - shell: bash |
139 | | - run: | |
140 | | - set -e |
141 | | - if [ -d desktop-apps ]; then |
142 | | - for d in desktop-apps/*/; do |
143 | | - [ -d "$d" ] || continue |
144 | | - if [ -f "$d/package.json" ]; then |
145 | | - echo "=== $d ===" |
146 | | - (cd "$d" && (pnpm install --frozen-lockfile || npm ci) && (pnpm run build || npm run build)) |
147 | | - fi |
148 | | - done |
149 | | - else |
150 | | - echo "::notice::No desktop-apps/ directory" |
151 | | - fi |
| 20 | + - name: Install Dependencies |
| 21 | + run: | |
| 22 | + python -m pip install --upgrade pip |
| 23 | + pip install pytest pytest-cov requests matplotlib numpy |
| 24 | +
|
| 25 | + - name: Run Domain-Specific Test Suite |
| 26 | + run: | |
| 27 | + python run_all_tests.py |
0 commit comments