-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Is your feature request related to a problem? Please describe.
Frameworks like React, Vue, Angular, and others have made it popular for developers to create web applications that run much (or sometimes all) of their logic in the browser via javascript. These applications are sometimes ship entirely static assets to the client, sometimes do SSR, and sometimes can do both (e.g. hybrid or polymorphic).
I had originally thought we could use the Static buckets feature alongside deploy hooks to ship these apps, but that limits the applications to a) only be statically served, and b) only be shipped to s3 supporting providers. This would prevent the use of github pages, cloudflare pages, Vercel, Netlify, and various other specialized providers.
Describe the solution you'd like
I'd like a dedicated feature to support javascript-powered web applications. This would allow me to easily create and integrate these types of applications into my components while still enabling the use of popular providers for deployment:
version: v2
webapps:
frontend:
# Directory containing all the code needed to build and/or run the webapp
context: ./
# Command used to compile the web app
build: npm run build
# Command used to run the webapp from source
dev: npm start
# The directory containing the compiled source after the `build` command is run
outdir: ./build
# The command to run from inside `outdir` to start the server.
# If none specified, assume the contents are static and serve from a vanilla webserver like nginx
start: node server.js
# Environment variables to be made available during the `build` step
environment:
BACKEND_ADDR: ${{ ingresses.backend.url }}
ingresses:
backend:
service: backendDescribe alternatives you've considered
I had tried to use static buckets which I could get working on s3 behind cloudfront, but there are very few providers that support performant serving of webapps out of s3.