| 11 | 11 | | uses: g1t/detect@v1 |
| 12 | 12 | | - if: steps.detect.outputs.kind == 'none' |
| 13 | 13 | | run: echo "::error::Nothing here would be served." |
| 14 | + | - if: steps.detect.outputs.framework == 'hugo' |
| 15 | + | run: echo "A Hugo site, served from ${{ steps.detect.outputs.output-dir }}" |
| 14 | 16 | | - if: steps.detect.outputs.install != '' |
| 15 | 17 | | run: ${{ steps.detect.outputs.install }} |
| 16 | 18 | | ``` |
| ⋯ |
| 27 | 29 | | |
| 28 | 30 | | | Output | | |
| 29 | 31 | | | --- | --- | |
| 30 | | − | | `kind` | `workers` (a `wrangler.jsonc`, `wrangler.json` or `wrangler.toml`), `static` (a site a build writes), `html` (the files as they are) or `none`. | |
| 31 | | − | | `install` | How dependencies are installed, from the lockfile: `npm ci`, `pnpm install --frozen-lockfile`, and so on. Empty without a `package.json`. | |
| 32 | | − | | `build` | What builds it: your command, `npm run build` for a package with a build script, or `wrangler deploy --dry-run` for Workers. Empty when nothing does. | |
| 33 | | − | | `output-dir` | The folder served, relative to the project (`.` for the project itself): a Workers project's assets directory, or the first of `dist`, `build`, `out`, `public`, `_site`, `.output/public` that exists. Empty when a build has yet to write it. | |
| 32 | + | | `kind` | `workers` (a `wrangler.jsonc`, `wrangler.json` or `wrangler.toml`, or a framework's Cloudflare adapter), `static` (a site a build writes), `html` (the files as they are) or `none` (nothing to serve, or a framework set up to need a server). | |
| 33 | + | | `framework` | The framework it is built with, from the table below. Empty when there is none. | |
| 34 | + | | `install` | How dependencies are installed, from the lockfile: `npm ci`, `pnpm install --frozen-lockfile`, and so on, and `bundle install` for Jekyll. Empty when there is nothing to install. | |
| 35 | + | | `build` | What builds it: your command, the package's `build` script (`npm run build`), the framework's own command, or `wrangler deploy --dry-run` for Workers. Empty when nothing does. | |
| 36 | + | | `output-dir` | The folder served, relative to the project (`.` for the project itself): yours, a Workers project's assets directory, the folder the framework writes, or the first of `dist`, `build`, `out`, `public`, `_site`, `.output/public` that exists. Empty when a build has yet to write it, as for a Cloudflare adapter's Worker. | |
| 37 | + | |
| 38 | + | When `kind` is `none` because of how a framework is set up, such as a |
| 39 | + | Next.js app without `output: 'export'`, the step's log says what to |
| 40 | + | change. |
| 41 | + | |
| 42 | + | ## Frameworks |
| 43 | + | |
| 44 | + | | `framework` | Found by | Serves | |
| 45 | + | | --- | --- | --- | |
| 46 | + | | `vite`, `vite-react`, `vite-vue`, `vite-svelte`, `vite-solid`, `vite-preact` | `vite`, and the framework's Vite plugin | `dist`, or `build.outDir` | |
| 47 | + | | `astro` | `astro` | `dist`, or `outDir`; a Worker with `@astrojs/cloudflare` | |
| 48 | + | | `nextjs` | `next` | `out` with `output: 'export'`; a Worker with `@opennextjs/cloudflare` and a `wrangler.jsonc` | |
| 49 | + | | `sveltekit` | `@sveltejs/kit` | `build` with `adapter-static`; a Worker with `adapter-cloudflare` | |
| 50 | + | | `nuxt` | `nuxt` | `.output/public`, from `nuxi generate` | |
| 51 | + | | `react-router`, `remix` | `@react-router/dev`, `@remix-run/dev` | `build/client` with `ssr: false` | |
| 52 | + | | `gatsby` | `gatsby` | `public` | |
| 53 | + | | `docusaurus` | `@docusaurus/core` | `build` | |
| 54 | + | | `eleventy` | `@11ty/eleventy` | `_site` | |
| 55 | + | | `angular` | `@angular/core` and `angular.json` | `dist/<project>/browser` | |
| 56 | + | | `create-react-app` | `react-scripts` | `build` | |
| 57 | + | | `hugo` | `hugo.toml`, or Hugo's `config.toml` | `public` | |
| 58 | + | | `jekyll` | `_config.yml` and a `Gemfile` | `_site` | |
| 59 | + | | `mdbook` | `book.toml` | `book` | |
| 60 | + | |
| 61 | + | [What deploys](https://docs.g1t.sh/guides/deployments/#frameworks) has |
| 62 | + | each one's build command. Your `build-command` and `output-dir` win over |
| 63 | + | what is detected. |
| 34 | 64 | | |
| 35 | 65 | | It runs `g1t-runner detect`, found or downloaded as `g1t/deploy` finds it. |