Skip to content

test+docs: lift upstream skill's before/after pairs as migration fixtures #98

@lex00

Description

@lex00

The upstream skill gitlab-org/ci-cd/github-actions-to-gitlab-ci ships ~48 curated before/after pairs across its two reference files:

  • references/syntax-mapping.md — ~15 pairs covering triggers, jobs/stages, steps/scripts, runs-on, matrix, env/secrets, containers/services, artifacts, caching, conditional execution, reusable workflows, job control (timeout/continue-on-error/concurrency/permissions), outputs, workflow_dispatch inputs, and github.* context expressions
  • references/marketplace-actions.md — 33 pairs, one per Tier 1/2/3 action

This is canonical migration material curated by the GitLab CI team. Lifting it into chant gives us the test corpus, the regression-assertion fixtures, and the docs demos as a single dataset, aligned 1:1 with the ActionMapping[] entries from #87 + #88.

Layout:

lexicons/gitlab/src/migrate/from-github/fixtures/
  syntax-mapping/
    triggers/
      input.yml                 # the GH workflow from the skill's before block
      expected.gitlab-ci.yml    # the GL pipeline from the skill's after block
      expected-report.sarif     # provenance the migration tool is expected to emit
    matrix/
    env-secrets/
    ...
  marketplace-actions/
    tier-1/
      actions-checkout/
      actions-setup-node/
      ...
    tier-2/
    tier-3/

Tests under migrate.test.ts iterate the fixture tree and assert chant migrate input.yml produces the expected YAML (canonicalised compare) and the expected SARIF provenance. A curated subset embeds in #94's migration.mdx as worked examples (don't render all 48 — pick ~6 representative ones).

Done when

  • Every before/after pair from the upstream skill's two reference files exists as a fixture directory with input.yml + expected.gitlab-ci.yml.
  • Each fixture has a corresponding expected-report.sarif capturing the provenance the migration tool emits.
  • migrate.test.ts iterates the fixture tree and asserts a match for each.
  • A curated subset (~6 fixtures) renders inline in migration.mdx (docs: GitLab lexicon migration page #94).
  • LICENSE-3RD-PARTY (or equivalent) credits the upstream skill's MIT license for the lifted fixture content.

Depends on: #85, #86, #87, #88. Blocks: #94.

Inspired by

gitlab-org/ci-cd/github-actions-to-gitlab-cireferences/syntax-mapping.md and references/marketplace-actions.md. Both files are MIT-licensed; their before/after blocks are the exact fixture content this issue ports.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions