Skip to content

Adopt shared reusable workflows across Adapt repos #3811

@swashbuck

Description

@swashbuck

Subject of the enhancement

Adopt the shared reusable workflows from adaptlearning/semantic-release-config across Adapt repositories, so release and add-to-project automation is maintained in one place instead of being duplicated in every repo.

Dependency / status

This rollout is gated on adaptlearning/semantic-release-config#12 (add a reusable addtomainproject.yml, PR #13). We will not start swapping repos until that reusable workflow is approved and merged, so both workflows can be migrated together in a single pass per repo.

What this covers

Replace each repo's two inline workflows with thin callers of the shared reusable workflows.

.github/workflows/releases.yml:

name: Release

on:
  push:
    branches:
      - master

permissions:
  contents: write
  issues: write
  pull-requests: write
  id-token: write

jobs:
  release:
    uses: adaptlearning/semantic-release-config/.github/workflows/release.yml@master

.github/workflows/addtomainproject.yml:

name: Add to main project

on:
  issues:
    types:
      - opened
  pull_request:
    types:
      - opened
  workflow_dispatch:

jobs:
  add-to-project:
    uses: adaptlearning/semantic-release-config/.github/workflows/addtomainproject.yml@master
    secrets: inherit

The permissions: block is required in the release caller (GitHub Actions grants only the permissions explicitly listed once the key is present). The add-to-project caller needs secrets: inherit so the reusable workflow can read ADDTOPROJECT_TOKEN.

Scope and approach

  • Workflows only. Each repo keeps its existing inline release config in package.json. This is behaviour-preserving: the reusable release workflow simply runs npx semantic-release against the repo's own config, so migration version-stamping and bower.json sync are unaffected.
  • Trial first. Once Feature/8687 #12 lands, start with a single repo (adapt-component), review the result, then proceed in batches.
  • Per repo: branch, swap both workflows, open a Chore: PR, review, merge. No release is cut by the workflow change itself (a Chore commit produces no release under the ESLint preset).

Out of scope

  • Shared config extends. Adopting "extends": "@adaptlearning/semantic-release-config" in package.json is deliberately excluded: the shared config does not yet include the migrations semantic-release-replace-plugin or bower.json in its git assets, so switching plugin repos to it would break migration stamping and bower sync. Revisit once the shared config covers those.

Repos in scope

Repos that currently have a release and/or add-to-main-project workflow (43):

Posted via collaboration with Claude Code

Metadata

Metadata

Assignees

Type

No fields configured for Task.

Projects

Status
Assigned

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions