feat(workflow-templates): add release and ci-mobile-ios templates, pass node-version on ci-python

release.yml / release.properties.json and ci-mobile-ios.yml /
ci-mobile-ios.properties.json are new caller templates for the two reusable
workflows added in 9389e51. Both pin the reusable to 9389e51, the commit that
introduces the workflow files.

release.yml triggers on workflow_dispatch with a required `version` input and
declares `permissions: contents: write`, which the reusable needs to push the
tag and publish the Release. ci-mobile-ios.yml triggers on pull_request and
keys its job `ci` so the check context resolves to `ci / ci`.

ci-python.yml now passes `node-version: "24"`. Its target,
ci-python-sam.yaml, declares that input at line 34 with default "24"; the
ci-static, ci-typescript-frontend, ci-node, cdk-deploy and mobile-ios-deploy
templates already pass the same value.

Both new .properties.json files carry the same five keys as the thirteen
existing ones: categories, description, filePatterns, iconName, name.
This commit is contained in:
Adam Moussa 2026-07-28 15:57:17 -04:00
parent 9389e51c10
commit ead0b6cf6c
No known key found for this signature in database
5 changed files with 63 additions and 0 deletions

View file

@ -0,0 +1,7 @@
{
"name": "Sea Haven — CI (Mobile / iOS)",
"description": "Runs npm ci, typecheck, optional lint and optional unit tests on Linux, then compiles the iOS app on macOS with signing disabled and no upload, via the org reusable ci-mobile-ios workflow. The pre-merge counterpart to the iOS TestFlight deploy.",
"iconName": "octicon-checklist",
"categories": ["Mobile", "TypeScript", "JavaScript", "Continuous integration"],
"filePatterns": ["metro\\.config\\.[cm]?js$", "app\\.json$", "Podfile$"]
}

View file

@ -0,0 +1,21 @@
name: CI (Mobile / iOS)
on:
pull_request:
branches: [main]
jobs:
ci:
# Job id MUST stay `ci`: the reusable's aggregator job is also `ci`, so the
# check context resolves to the required `ci / ci`.
uses: Sea-Haven-Industries/.github/.github/workflows/ci-mobile-ios.yaml@9389e51c10c506caa55f204527452a9e29b0e438 # main
with:
# Matches local dev (Node 24 / npm 11, lockfileVersion 3). This is also
# the reusable workflow's default — passed explicitly to pin against drift.
node-version: "24"
# Set these two to the app directory when the mobile project is not at
# the repo root, matching the values passed to cd-mobile-ios.
working-directory: "."
cache-dependency-path: "package-lock.json"
# Off by default: enable once package.json actually declares the script.
run-lint: false
run-tests: false

View file

@ -8,3 +8,7 @@ jobs:
uses: Sea-Haven-Industries/.github/.github/workflows/ci-python-sam.yaml@555d07c3a240689a81668026787eba089df4c975 # main uses: Sea-Haven-Industries/.github/.github/workflows/ci-python-sam.yaml@555d07c3a240689a81668026787eba089df4c975 # main
with: with:
run-tests: true run-tests: true
# ci-python-sam.yaml declares a `node-version` input (default "24") that
# feeds the CDK CLI when run-cdk-synth is enabled. Passed explicitly so
# the pin does not drift from local dev (Node 24 / npm 11).
node-version: "24"

View file

@ -0,0 +1,7 @@
{
"name": "Sea Haven — Release (tag + GitHub Release)",
"description": "Creates an annotated v-prefixed git tag and publishes a GitHub Release for a version supplied on manual dispatch, using the org reusable release workflow. Re-running on a version that is already tagged or released is a no-op.",
"iconName": "octicon-tag",
"categories": ["Deployment", "Utilities"],
"filePatterns": ["README\\.md$"]
}

View file

@ -0,0 +1,24 @@
name: Release
on:
workflow_dispatch:
inputs:
version:
description: 'Version to release, e.g. 1.4.0 (a leading "v" is accepted)'
type: string
required: true
permissions:
# The reusable workflow pushes an annotated tag and publishes a Release.
contents: write
jobs:
release:
uses: Sea-Haven-Industries/.github/.github/workflows/release.yaml@9389e51c10c506caa55f204527452a9e29b0e438 # main
with:
version: ${{ inputs.version }}
# Tags in this org are v-prefixed MAJOR.MINOR.PATCH; "v" is the default
# and is passed explicitly so a repo can see what it is producing.
tag-prefix: "v"
# Notes come from GitHub's commit-history generator. Set notes-file
# instead to publish the contents of a file as the release notes.
generate-notes: true