Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.
| g1t has actions of its own: g1t/deploy builds the checkout a job is in and puts it on g1t.page, opening the build with the job's token, masking the build's token and the project's secrets, and running g1t-runner deploy, with the app's url, the deployment's id and its kind as outputs; g1t/detect says what such a build would find (kind, install, build and output-dir) without building anything. Both use the g1t-runner on the machine, or download the newest release from g1t.sh/downloads/runner and check it against its SHA256SUMS. They live under actions/, and the Actions release workflow pushes each folder to its own repository in the g1t workspace and moves its v1 tag whenever main changes them, with the G1T_ACTIONS_PUBLISH_TOKEN secret its header describes. | 1 | name: Detect a g1t.page project |
| 2 | description: Says what a g1t.page build of this checkout would find, without building anything. Its kind, how it installs, what builds it and where its output is. | |
| 3 | author: g1t | |
| 4 | ||
| 5 | inputs: | |
| 6 | root-dir: | |
| 7 | description: Where the project is in the checkout. The checkout itself unless you say. | |
| 8 | required: false | |
| 9 | default: "" | |
| 10 | build-command: | |
| 11 | description: A build command of your own, as g1t/deploy takes it. | |
| 12 | required: false | |
| 13 | default: "" | |
| 14 | output-dir: | |
| 15 | description: An output folder of your own, as g1t/deploy takes it. | |
| 16 | required: false | |
| 17 | default: "" | |
| 18 | ||
| 19 | outputs: | |
| 20 | kind: | |
| 21 | description: workers (a Wrangler config), static (a site a build writes), html (the files as they are) or none. | |
| 22 | value: ${{ steps.detect.outputs.kind }} | |
| 23 | install: | |
| 24 | description: How its dependencies are installed, such as npm ci. Empty without a package.json. | |
| 25 | value: ${{ steps.detect.outputs.install }} | |
| 26 | build: | |
| 27 | description: What builds it. Empty when nothing does. | |
| 28 | value: ${{ steps.detect.outputs.build }} | |
| 29 | output-dir: | |
| 30 | description: The folder that is served, relative to the project (. for the project itself). Empty when a build has yet to write it. | |
| 31 | value: ${{ steps.detect.outputs.output-dir }} | |
| 32 | ||
| 33 | runs: | |
| 34 | using: composite | |
| 35 | steps: | |
| 36 | - id: detect | |
| 37 | shell: bash | |
| 38 | env: | |
| 39 | ROOT_DIR: ${{ inputs.root-dir }} | |
| 40 | BUILD_COMMAND: ${{ inputs.build-command }} | |
| 41 | OUTPUT_DIR: ${{ inputs.output-dir }} | |
| 42 | run: | | |
| 43 | set -euo pipefail | |
| 44 | runner="$(bash "$GITHUB_ACTION_PATH/runner.sh")" | |
| 45 | found="$("$runner" detect)" | |
| 46 | echo "$found" | |
| 47 | echo "$found" >> "$GITHUB_OUTPUT" |