diff --git a/workflow-templates/ci-mobile-ios.properties.json b/workflow-templates/ci-mobile-ios.properties.json new file mode 100644 index 0000000..b27a105 --- /dev/null +++ b/workflow-templates/ci-mobile-ios.properties.json @@ -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$"] +} diff --git a/workflow-templates/ci-mobile-ios.yml b/workflow-templates/ci-mobile-ios.yml new file mode 100644 index 0000000..01c348c --- /dev/null +++ b/workflow-templates/ci-mobile-ios.yml @@ -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 diff --git a/workflow-templates/ci-python.yml b/workflow-templates/ci-python.yml index 9ae9f03..a12000f 100644 --- a/workflow-templates/ci-python.yml +++ b/workflow-templates/ci-python.yml @@ -8,3 +8,7 @@ jobs: uses: Sea-Haven-Industries/.github/.github/workflows/ci-python-sam.yaml@555d07c3a240689a81668026787eba089df4c975 # main with: 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" diff --git a/workflow-templates/release.properties.json b/workflow-templates/release.properties.json new file mode 100644 index 0000000..b430506 --- /dev/null +++ b/workflow-templates/release.properties.json @@ -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$"] +} diff --git a/workflow-templates/release.yml b/workflow-templates/release.yml new file mode 100644 index 0000000..1dab305 --- /dev/null +++ b/workflow-templates/release.yml @@ -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