Openstatus www.openstatus.dev
at main 305 lines 11 kB view raw
1effective: | 2 ignore: 3 - node_modules 4 - /apps/docs 5 - /apps/screenshot-service 6 - /apps/server 7 - /apps/web 8 - /apps/dashboard 9 - /apps/status-page 10 - /packages/analytics 11 - /packages/api 12 - /packages/error 13 - /packages/tracker 14 builders: 15 build: 16 fromImage: 17 path: oven/bun 18 digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a 19 label: 20 org.opencontainers.image.stage: build 21 org.opencontainers.image.base.name: docker.io/oven/bun:1.3.6 22 org.opencontainers.image.base.digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a 23 workdir: /app/apps/workflows 24 env: 25 NODE_ENV: production 26 copy: 27 - paths: 28 - . 29 target: /app/ 30 - fromBuilder: install 31 paths: 32 - /app/node_modules 33 target: /app/node_modules 34 run: 35 - bun build --compile --target bun --sourcemap src/index.ts --outfile=app 36 install: 37 fromImage: 38 path: oven/bun 39 digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a 40 label: 41 org.opencontainers.image.stage: install 42 org.opencontainers.image.base.digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a 43 org.opencontainers.image.base.name: docker.io/oven/bun:1.3.6 44 workdir: /app/ 45 run: 46 - bun install --production --frozen-lockfile --verbose 47 cache: 48 - target: /root/.bun/install/cache 49 bind: 50 - target: bunfig.toml 51 source: bunfig.toml 52 - target: package.json 53 source: package.json 54 - target: apps/workflows/package.json 55 source: apps/workflows/package.json 56 - target: packages/assertions/package.json 57 source: packages/assertions/package.json 58 - target: packages/db/package.json 59 source: packages/db/package.json 60 - target: packages/emails/package.json 61 source: packages/emails/package.json 62 - target: packages/notifications/base/package.json 63 source: packages/notifications/base/package.json 64 - target: packages/notifications/discord/package.json 65 source: packages/notifications/discord/package.json 66 - target: packages/notifications/email/package.json 67 source: packages/notifications/email/package.json 68 - target: packages/notifications/google-chat/package.json 69 source: packages/notifications/google-chat/package.json 70 - target: packages/notifications/ntfy/package.json 71 source: packages/notifications/ntfy/package.json 72 - target: packages/notifications/opsgenie/package.json 73 source: packages/notifications/opsgenie/package.json 74 - target: packages/notifications/pagerduty/package.json 75 source: packages/notifications/pagerduty/package.json 76 - target: packages/notifications/slack/package.json 77 source: packages/notifications/slack/package.json 78 - target: packages/notifications/telegram/package.json 79 source: packages/notifications/telegram/package.json 80 - target: packages/notifications/twillio-whatsapp/package.json 81 source: packages/notifications/twillio-whatsapp/package.json 82 - target: packages/notifications/twillio-sms/package.json 83 source: packages/notifications/twillio-sms/package.json 84 - target: packages/notifications/webhook/package.json 85 source: packages/notifications/webhook/package.json 86 - target: packages/regions/package.json 87 source: packages/regions/package.json 88 - target: packages/utils/package.json 89 source: packages/utils/package.json 90 - target: packages/tsconfig/package.json 91 source: packages/tsconfig/package.json 92 - target: packages/tinybird/package.json 93 source: packages/tinybird/package.json 94 - target: packages/upstash/package.json 95 source: packages/upstash/package.json 96 - target: packages/theme-store/package.json 97 source: packages/theme-store/package.json 98 libsql: 99 fromImage: 100 path: oven/bun 101 digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a 102 label: 103 org.opencontainers.image.base.digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a 104 org.opencontainers.image.base.name: docker.io/oven/bun:1.3.6 105 workdir: /app/ 106 copy: 107 - fromBuilder: docker 108 paths: 109 - /app/apps/build-docker/package.json 110 target: /app/package.json 111 run: 112 - bun install 113 ca-certs: 114 fromImage: 115 path: debian 116 digest: sha256:b32674fb57780ad57d7b0749242d3f585f462f4ec4a60ae0adacd945f9cb9734 117 label: 118 org.opencontainers.image.base.name: docker.io/debian:bullseye-slim 119 org.opencontainers.image.base.digest: sha256:b32674fb57780ad57d7b0749242d3f585f462f4ec4a60ae0adacd945f9cb9734 120 run: 121 - apt update && apt install -y ca-certificates curl && update-ca-certificates 122 docker: 123 fromImage: 124 path: oven/bun 125 digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a 126 label: 127 org.opencontainers.image.base.name: docker.io/oven/bun:1.3.6 128 org.opencontainers.image.base.digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a 129 workdir: /app/apps/workflows 130 copy: 131 - paths: 132 - . 133 target: /app/ 134 run: 135 - bun run src/build-docker.ts 136 fromImage: 137 path: debian 138 digest: sha256:b32674fb57780ad57d7b0749242d3f585f462f4ec4a60ae0adacd945f9cb9734 139 label: 140 org.opencontainers.image.authors: OpenStatus Team 141 org.opencontainers.image.source: https://github.com/openstatusHQ/openstatus 142 org.opencontainers.image.title: OpenStatus Workflows 143 io.dofigen.version: 2.5.0 144 org.opencontainers.image.base.digest: sha256:b32674fb57780ad57d7b0749242d3f585f462f4ec4a60ae0adacd945f9cb9734 145 org.opencontainers.image.base.name: docker.io/debian:bullseye-slim 146 org.opencontainers.image.vendor: OpenStatus 147 org.opencontainers.image.description: Background job processing and probe scheduling for OpenStatus 148 workdir: /app/ 149 copy: 150 - fromBuilder: build 151 paths: 152 - /app/apps/workflows/app 153 target: /app/apps/workflows/ 154 chmod: '555' 155 - fromBuilder: libsql 156 paths: 157 - /app/node_modules 158 target: /app/packages/db/node_modules 159 - fromBuilder: libsql 160 paths: 161 - /app/node_modules 162 target: /app/node_modules 163 - fromBuilder: ca-certs 164 paths: 165 - /etc/ssl/certs/ca-certificates.crt 166 target: /etc/ssl/certs/ 167 - fromBuilder: ca-certs 168 paths: 169 - /usr/bin/curl 170 target: /usr/bin/curl 171 entrypoint: 172 - /app/apps/workflows/app 173 expose: 174 - port: 3000 175images: 176 docker.io: 177 library: 178 debian: 179 bullseye-slim: 180 digest: sha256:b32674fb57780ad57d7b0749242d3f585f462f4ec4a60ae0adacd945f9cb9734 181 oven: 182 bun: 183 1.3.6: 184 digest: sha256:f20d9cf365ab35529384f1717687c739c92e6f39157a35a95ef06f4049a10e4a 185resources: 186 dofigen.yml: 187 hash: 6a13d3715d011de108b8e7710153a84e1c2a05a1aaf9f89daf6ae6a7315490f8 188 content: | 189 ignore: 190 - node_modules 191 - /apps/docs 192 - /apps/screenshot-service 193 - /apps/server 194 - /apps/web 195 - /apps/dashboard 196 - /apps/status-page 197 - /packages/analytics 198 - /packages/api 199 - /packages/error 200 - /packages/tracker 201 builders: 202 install: 203 fromImage: oven/bun:1.3.6 204 workdir: /app/ 205 labels: 206 org.opencontainers.image.stage: install 207 bind: 208 - bunfig.toml 209 - package.json 210 - apps/workflows/package.json 211 - packages/assertions/package.json 212 - packages/db/package.json 213 - packages/emails/package.json 214 - packages/notifications/base/package.json 215 - packages/notifications/discord/package.json 216 - packages/notifications/email/package.json 217 - packages/notifications/google-chat/package.json 218 - packages/notifications/ntfy/package.json 219 - packages/notifications/opsgenie/package.json 220 - packages/notifications/pagerduty/package.json 221 - packages/notifications/slack/package.json 222 - packages/notifications/telegram/package.json 223 - packages/notifications/twillio-whatsapp/package.json 224 - packages/notifications/twillio-sms/package.json 225 - packages/notifications/webhook/package.json 226 - packages/regions/package.json 227 - packages/utils/package.json 228 - packages/tsconfig/package.json 229 - packages/tinybird/package.json 230 - packages/upstash/package.json 231 - packages/theme-store/package.json 232 # Install dependencies 233 run: bun install --production --frozen-lockfile --verbose 234 cache: 235 - /root/.bun/install/cache 236 237 # Stage 4: Build application (compile to binary) 238 build: 239 fromImage: oven/bun:1.3.6 240 workdir: /app/apps/workflows 241 labels: 242 org.opencontainers.image.stage: build 243 copy: 244 - . /app/ 245 - fromBuilder: install 246 source: /app/node_modules 247 target: /app/node_modules 248 # Should set env to production here 249 # Compile the TypeScript application 250 env: 251 NODE_ENV: production 252 run: bun build --compile --target bun --sourcemap src/index.ts --outfile=app 253 254 docker: 255 fromImage: oven/bun:1.3.6 256 workdir: /app/apps/workflows 257 copy: 258 - . /app/ 259 run: bun run src/build-docker.ts 260 261 libsql: 262 fromImage: oven/bun:1.3.6 263 workdir: /app/ 264 copy: 265 - fromBuilder: docker 266 source: /app/apps/build-docker/package.json 267 target: /app/package.json 268 run: bun install 269 270 ca-certs: 271 fromImage: debian:bullseye-slim 272 run: apt update && apt install -y ca-certificates curl && update-ca-certificates 273 274 fromImage: debian:bullseye-slim 275 workdir: /app/ 276 277 # Metadata labels 278 labels: 279 org.opencontainers.image.title: OpenStatus Workflows 280 org.opencontainers.image.description: Background job processing and probe scheduling for OpenStatus 281 org.opencontainers.image.source: https://github.com/openstatusHQ/openstatus 282 org.opencontainers.image.vendor: OpenStatus 283 org.opencontainers.image.authors: OpenStatus Team 284 285 # Copy artifacts from build stages 286 copy: 287 - fromBuilder: build 288 source: /app/apps/workflows/app 289 target: /app/apps/workflows/ 290 chmod: "555" 291 - fromBuilder: libsql 292 source: /app/node_modules 293 target: /app/packages/db/node_modules 294 - fromBuilder: libsql 295 source: /app/node_modules 296 target: /app/node_modules 297 - fromBuilder: ca-certs 298 source: /etc/ssl/certs/ca-certificates.crt 299 target: /etc/ssl/certs/ 300 - fromBuilder: ca-certs 301 source: /usr/bin/curl 302 target: /usr/bin/curl 303 expose: "3000" 304 305 entrypoint: /app/apps/workflows/app