|
1 | | -name: 'CI' |
| 1 | +name: "CI" |
2 | 2 |
|
3 | 3 | on: |
4 | 4 | push: |
5 | 5 | branches: |
6 | 6 | - main |
7 | 7 | pull_request: |
8 | 8 | branches: |
9 | | - - '**' |
| 9 | + - "**" |
10 | 10 |
|
11 | 11 | env: |
12 | 12 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
|
20 | 20 |
|
21 | 21 | jobs: |
22 | 22 | lint: |
23 | | - strategy: |
24 | | - fail-fast: false |
25 | | - matrix: |
26 | | - os: [ubuntu-latest, macos-latest] |
27 | | - runs-on: ${{ matrix.os }} |
| 23 | + runs-on: ubuntu-latest |
28 | 24 | steps: |
29 | | - - uses: actions/checkout@v4 |
| 25 | + - uses: actions/checkout@v5 |
30 | 26 | - uses: oven-sh/setup-bun@v2 |
31 | | - - run: bun install |
| 27 | + - run: bun ci |
32 | 28 | - run: bun run lint |
33 | 29 |
|
34 | 30 | typecheck: |
35 | | - strategy: |
36 | | - fail-fast: false |
37 | | - matrix: |
38 | | - os: [ubuntu-latest, macos-latest] |
39 | | - runs-on: ${{ matrix.os }} |
| 31 | + runs-on: ubuntu-latest |
40 | 32 | steps: |
41 | | - - uses: actions/checkout@v4 |
| 33 | + - uses: actions/checkout@v5 |
42 | 34 | - uses: oven-sh/setup-bun@v2 |
43 | | - - run: bun install |
| 35 | + - run: bun ci |
44 | 36 | - run: bun run prebuild |
45 | 37 | - run: bun run typecheck |
46 | 38 |
|
47 | 39 | test-unit: |
48 | | - strategy: |
49 | | - fail-fast: false |
50 | | - matrix: |
51 | | - os: [ubuntu-latest, macos-latest] |
52 | | - runs-on: ${{ matrix.os }} |
| 40 | + runs-on: ubuntu-latest |
53 | 41 | steps: |
54 | | - - uses: actions/checkout@v4 |
| 42 | + - uses: actions/checkout@v5 |
55 | 43 | - uses: oven-sh/setup-bun@v2 |
56 | | - - run: bun install |
| 44 | + - run: bun ci |
57 | 45 | - run: bun run test:unit |
58 | 46 | - uses: qltysh/qlty-action/coverage@v1 |
59 | 47 | with: |
60 | | - token: ${{ secrets.QLTY_COVERAGE_TOKEN }} |
61 | | - files: coverage/lcov.info |
| 48 | + token: ${{ secrets.QLTY_COVERAGE_TOKEN }} |
| 49 | + files: coverage/lcov.info |
62 | 50 |
|
63 | 51 | test-e2e: |
64 | | - strategy: |
65 | | - fail-fast: false |
66 | | - matrix: |
67 | | - os: [macos-latest] |
68 | | - runs-on: ${{ matrix.os }} |
| 52 | + runs-on: macos-latest |
69 | 53 | timeout-minutes: 60 |
70 | 54 | steps: |
71 | | - - uses: actions/checkout@v4 |
| 55 | + - uses: actions/checkout@v5 |
72 | 56 | - uses: oven-sh/setup-bun@v2 |
73 | | - - run: bun install |
| 57 | + - run: bun ci |
74 | 58 | - run: bunx playwright install --with-deps |
75 | 59 | - run: bun run test:e2e |
76 | 60 |
|
77 | 61 | build: |
78 | | - strategy: |
79 | | - fail-fast: false |
80 | | - matrix: |
81 | | - os: [ubuntu-latest, macos-latest] |
82 | | - runs-on: ${{ matrix.os }} |
| 62 | + runs-on: ubuntu-latest |
83 | 63 | steps: |
84 | | - - uses: actions/checkout@v4 |
| 64 | + - uses: actions/checkout@v5 |
85 | 65 | - uses: oven-sh/setup-bun@v2 |
86 | | - - run: bun install |
| 66 | + - run: bun ci |
87 | 67 | - name: Cache Astro build output |
88 | 68 | uses: actions/cache@v4 |
89 | 69 | with: |
90 | 70 | path: ${{ github.workspace }}/.astro |
91 | | - key: ${{ matrix.os }}-astro-build-${{ hashFiles('content/**/*.jpg', 'content/**/*.png') }} |
92 | | - restore-keys: ${{ matrix.os }}-astro-build- |
| 71 | + key: ubuntu-latest-astro-build-${{ hashFiles('content/**/*.jpg', 'content/**/*.png') }} |
| 72 | + restore-keys: ubuntu-latest-astro-build- |
93 | 73 | - run: bun run build |
94 | 74 | - name: Zip artifact for deployment |
95 | | - if: github.ref == 'refs/heads/main' && matrix.os == 'macos-latest' |
| 75 | + if: github.ref == 'refs/heads/main' |
96 | 76 | run: zip dist.zip ./dist -r |
97 | 77 | - uses: actions/upload-artifact@v4 |
98 | | - if: github.ref == 'refs/heads/main' && matrix.os == 'macos-latest' |
| 78 | + if: github.ref == 'refs/heads/main' |
99 | 79 | with: |
100 | | - name: dist-${{ matrix.os }} |
| 80 | + name: dist-ubuntu-latest |
101 | 81 | path: dist.zip |
| 82 | + retention-days: 1 |
102 | 83 |
|
103 | 84 | deploy: |
104 | 85 | needs: [lint, typecheck, test-unit, test-e2e, build] |
105 | 86 | if: success() && github.ref == 'refs/heads/main' |
106 | | - runs-on: macos-latest |
| 87 | + runs-on: ubuntu-latest |
107 | 88 |
|
108 | 89 | steps: |
109 | | - - uses: actions/checkout@v4 |
| 90 | + - uses: actions/checkout@v5 |
110 | 91 | - uses: oven-sh/setup-bun@v2 |
111 | 92 | - uses: actions/download-artifact@v4 |
112 | 93 | with: |
113 | | - name: dist-macos-latest |
| 94 | + name: dist-ubuntu-latest |
114 | 95 | - name: Tune AWS CLI concurrency |
115 | 96 | run: | |
116 | 97 | # Fixed tuning for 2-core GitHub Actions runners (fast enough without thrash) |
|
0 commit comments