-
Notifications
You must be signed in to change notification settings - Fork 63
129 lines (123 loc) · 3.26 KB
/
ci.yml
File metadata and controls
129 lines (123 loc) · 3.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: CI
on:
pull_request:
push:
branches:
- main
jobs:
gem:
name: Gem (Ruby ${{ matrix.ruby }})
runs-on: ubuntu-latest
defaults:
run:
working-directory: gem
strategy:
fail-fast: false
matrix:
ruby: ["3.3", "3.4"]
steps:
- uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
rubygems: latest
working-directory: gem
- name: Run tests
run: bundle exec rake test
- name: Run linter
run: bundle exec rake standard
docs:
name: Docs (Rails)
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
working-directory: docs
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 10.8.0
run_install: false
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version-file: docs/.node-version
cache: pnpm
cache-dependency-path: docs/pnpm-lock.yaml
- name: Install dependencies
run: pnpm install
- name: Lint
run: bundle exec standardrb
- name: Run tests
run: bin/rails db:test:prepare test
mcp:
name: MCP (Ruby ${{ matrix.ruby }})
runs-on: ubuntu-latest
defaults:
run:
working-directory: mcp
strategy:
fail-fast: false
matrix:
ruby: ["3.3", "3.4"]
steps:
- uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
rubygems: latest
working-directory: mcp
- name: Run tests
run: bundle exec rake test
mcp-registry-check:
name: MCP registry up to date
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.3"
bundler-cache: true
working-directory: mcp
- name: Rebuild registry
working-directory: mcp
run: bundle exec exe/ruby-ui-mcp-build
- name: Fail on diff
run: |
if ! git diff --exit-code mcp/data/registry.json; then
echo "registry.json out of date — run 'cd mcp && bundle exec exe/ruby-ui-mcp-build' and commit"
exit 1
fi
docker-build:
name: Docker build (Devcontainer)
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v6
- name: Login to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push devcontainer image
uses: devcontainers/ci@v0.3
with:
imageName: ghcr.io/ruby-ui/web-devcontainer
cacheFrom: ghcr.io/ruby-ui/web-devcontainer
subFolder: docs
push: always