@intentius/chant-lexicon-gitlab 0.1.12 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +4 -0
  2. package/dist/integrity.json +3 -2
  3. package/dist/manifest.json +1 -1
  4. package/dist/skills/chant-gitlab-migrate.md +117 -0
  5. package/package.json +11 -4
  6. package/src/import/generator.ts +20 -2
  7. package/src/migrate/from-github/actions/index.ts +27 -0
  8. package/src/migrate/from-github/actions/registry.ts +112 -0
  9. package/src/migrate/from-github/actions/tier-1.test.ts +128 -0
  10. package/src/migrate/from-github/actions/tier-1.ts +325 -0
  11. package/src/migrate/from-github/actions/tier-2-3.test.ts +144 -0
  12. package/src/migrate/from-github/actions/tier-2.ts +296 -0
  13. package/src/migrate/from-github/actions/tier-3.ts +124 -0
  14. package/src/migrate/from-github/composites/patterns.ts +167 -0
  15. package/src/migrate/from-github/composites/rewriter.test.ts +98 -0
  16. package/src/migrate/from-github/composites/rewriter.ts +29 -0
  17. package/src/migrate/from-github/diagnostics.ts +45 -0
  18. package/src/migrate/from-github/emit-ts.test.ts +49 -0
  19. package/src/migrate/from-github/emit-yaml.ts +128 -0
  20. package/src/migrate/from-github/expressions.test.ts +124 -0
  21. package/src/migrate/from-github/expressions.ts +302 -0
  22. package/src/migrate/from-github/fixtures/README.md +27 -0
  23. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/actions-checkout/expected-report.json +15 -0
  24. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/actions-checkout/expected.gitlab-ci.yml +13 -0
  25. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/actions-checkout/input.yml +7 -0
  26. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/actions-setup-node/expected-report.json +20 -0
  27. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/actions-setup-node/expected.gitlab-ci.yml +20 -0
  28. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/actions-setup-node/input.yml +12 -0
  29. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/actions-setup-python/expected-report.json +20 -0
  30. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/actions-setup-python/expected.gitlab-ci.yml +17 -0
  31. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/actions-setup-python/input.yml +12 -0
  32. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/docker-build-push/expected-report.json +24 -0
  33. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/docker-build-push/expected.gitlab-ci.yml +20 -0
  34. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/docker-build-push/input.yml +16 -0
  35. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/upload-download-artifact/expected-report.json +24 -0
  36. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/upload-download-artifact/expected.gitlab-ci.yml +27 -0
  37. package/src/migrate/from-github/fixtures/marketplace-actions/tier-1/upload-download-artifact/input.yml +20 -0
  38. package/src/migrate/from-github/fixtures/marketplace-actions/tier-2/codecov-action/expected-report.json +24 -0
  39. package/src/migrate/from-github/fixtures/marketplace-actions/tier-2/codecov-action/expected.gitlab-ci.yml +15 -0
  40. package/src/migrate/from-github/fixtures/marketplace-actions/tier-2/codecov-action/input.yml +13 -0
  41. package/src/migrate/from-github/fixtures/marketplace-actions/tier-2/setup-bun/expected-report.json +20 -0
  42. package/src/migrate/from-github/fixtures/marketplace-actions/tier-2/setup-bun/expected.gitlab-ci.yml +17 -0
  43. package/src/migrate/from-github/fixtures/marketplace-actions/tier-2/setup-bun/input.yml +11 -0
  44. package/src/migrate/from-github/fixtures/marketplace-actions/tier-3/paths-filter/expected-report.json +21 -0
  45. package/src/migrate/from-github/fixtures/marketplace-actions/tier-3/paths-filter/expected.gitlab-ci.yml +15 -0
  46. package/src/migrate/from-github/fixtures/marketplace-actions/tier-3/paths-filter/input.yml +11 -0
  47. package/src/migrate/from-github/fixtures/syntax-mapping/01-triggers/expected-report.json +20 -0
  48. package/src/migrate/from-github/fixtures/syntax-mapping/01-triggers/expected.gitlab-ci.yml +16 -0
  49. package/src/migrate/from-github/fixtures/syntax-mapping/01-triggers/input.yml +12 -0
  50. package/src/migrate/from-github/fixtures/syntax-mapping/02-stages-needs/expected-report.json +13 -0
  51. package/src/migrate/from-github/fixtures/syntax-mapping/02-stages-needs/expected.gitlab-ci.yml +31 -0
  52. package/src/migrate/from-github/fixtures/syntax-mapping/02-stages-needs/input.yml +16 -0
  53. package/src/migrate/from-github/fixtures/syntax-mapping/03-matrix/expected-report.json +13 -0
  54. package/src/migrate/from-github/fixtures/syntax-mapping/03-matrix/expected.gitlab-ci.yml +20 -0
  55. package/src/migrate/from-github/fixtures/syntax-mapping/03-matrix/input.yml +10 -0
  56. package/src/migrate/from-github/fixtures/syntax-mapping/04-env-secrets/expected-report.json +13 -0
  57. package/src/migrate/from-github/fixtures/syntax-mapping/04-env-secrets/expected.gitlab-ci.yml +18 -0
  58. package/src/migrate/from-github/fixtures/syntax-mapping/04-env-secrets/input.yml +11 -0
  59. package/src/migrate/from-github/fixtures/syntax-mapping/05-conditional/expected-report.json +13 -0
  60. package/src/migrate/from-github/fixtures/syntax-mapping/05-conditional/expected.gitlab-ci.yml +24 -0
  61. package/src/migrate/from-github/fixtures/syntax-mapping/05-conditional/input.yml +12 -0
  62. package/src/migrate/from-github/fixtures/syntax-mapping/06-services/expected-report.json +13 -0
  63. package/src/migrate/from-github/fixtures/syntax-mapping/06-services/expected.gitlab-ci.yml +18 -0
  64. package/src/migrate/from-github/fixtures/syntax-mapping/06-services/input.yml +13 -0
  65. package/src/migrate/from-github/fixtures/syntax-mapping/07-job-control/expected-report.json +20 -0
  66. package/src/migrate/from-github/fixtures/syntax-mapping/07-job-control/expected.gitlab-ci.yml +17 -0
  67. package/src/migrate/from-github/fixtures/syntax-mapping/07-job-control/input.yml +13 -0
  68. package/src/migrate/from-github/fixtures/syntax-mapping/08-workflow-name/expected-report.json +13 -0
  69. package/src/migrate/from-github/fixtures/syntax-mapping/08-workflow-name/expected.gitlab-ci.yml +14 -0
  70. package/src/migrate/from-github/fixtures/syntax-mapping/08-workflow-name/input.yml +7 -0
  71. package/src/migrate/from-github/fixtures.test.ts +92 -0
  72. package/src/migrate/from-github/index.ts +128 -0
  73. package/src/migrate/from-github/provenance.ts +68 -0
  74. package/src/migrate/from-github/rules.ts +82 -0
  75. package/src/migrate/from-github/stages.test.ts +99 -0
  76. package/src/migrate/from-github/stages.ts +177 -0
  77. package/src/migrate/from-github/transformer.test.ts +278 -0
  78. package/src/migrate/from-github/transformer.ts +719 -0
  79. package/src/migrate.mcp.test.ts +69 -0
  80. package/src/plugin.test.ts +7 -3
  81. package/src/plugin.ts +105 -1
  82. package/src/skills/chant-gitlab-migrate.md +117 -0
@@ -0,0 +1,27 @@
1
+ # Migration fixtures
2
+
3
+ End-to-end test inputs for the `chant migrate` GitHub Actions →
4
+ GitLab CI/CD transformer.
5
+
6
+ Each fixture is a directory under `syntax-mapping/` or
7
+ `marketplace-actions/` with three files:
8
+
9
+ - `input.yml` — the GitHub Actions workflow under translation
10
+ - `expected.gitlab-ci.yml` — the GitLab CI/CD YAML the transformer
11
+ should produce (canonicalised compare; parse → stringify on both sides)
12
+ - `expected-report.json` — the *shape* of the diagnostic + provenance
13
+ report (totals, rule IDs, NeedsReview line/rule pairs). Asserts
14
+ structure rather than raw SARIF text so cosmetic provenance message
15
+ changes don't cause churn.
16
+
17
+ The driver test (`fixtures.test.ts`) globs the tree and runs every
18
+ fixture through `transform()`. To add a new fixture, drop a directory
19
+ with the three files; no manifest edits required.
20
+
21
+ ## Attribution
22
+
23
+ The before/after content is derived from the upstream GitLab skill
24
+ `gitlab-org/ci-cd/github-actions-to-gitlab-ci` (MIT-licensed) —
25
+ specifically its `references/syntax-mapping.md` and
26
+ `references/marketplace-actions.md` files. See
27
+ `../../../ATTRIBUTIONS.md` for full credit.
@@ -0,0 +1,15 @@
1
+ {
2
+ "totals": {
3
+ "error": 0,
4
+ "warning": 0,
5
+ "info": 1
6
+ },
7
+ "ruleIds": [
8
+ "ACT-actions-checkout"
9
+ ],
10
+ "needsReview": [],
11
+ "provenance": {
12
+ "literalRewrites": 2,
13
+ "actionMappings": []
14
+ }
15
+ }
@@ -0,0 +1,13 @@
1
+ # Generated by chant migrate from input.yml
2
+
3
+ stages:
4
+ - build
5
+ workflow:
6
+ rules:
7
+ - if: '$CI_PIPELINE_SOURCE == "push"'
8
+
9
+ build:
10
+ image: ubuntu:24.04
11
+ script:
12
+ - make build
13
+ stage: build
@@ -0,0 +1,7 @@
1
+ on: push
2
+ jobs:
3
+ build:
4
+ runs-on: ubuntu-latest
5
+ steps:
6
+ - uses: actions/checkout@v4
7
+ - run: make build
@@ -0,0 +1,20 @@
1
+ {
2
+ "totals": {
3
+ "error": 0,
4
+ "warning": 0,
5
+ "info": 1
6
+ },
7
+ "ruleIds": [
8
+ "ACT-actions-checkout"
9
+ ],
10
+ "needsReview": [],
11
+ "provenance": {
12
+ "literalRewrites": 2,
13
+ "actionMappings": [
14
+ {
15
+ "action": "actions/setup-node",
16
+ "tier": 1
17
+ }
18
+ ]
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ # Generated by chant migrate from input.yml
2
+
3
+ stages:
4
+ - build
5
+ workflow:
6
+ rules:
7
+ - if: '$CI_PIPELINE_SOURCE == "push"'
8
+
9
+ build:
10
+ image: node:20
11
+ cache:
12
+ key:
13
+ files:
14
+ - package-lock.json
15
+ paths:
16
+ - .npm/
17
+ script:
18
+ - npm ci
19
+ - npm test
20
+ stage: build
@@ -0,0 +1,12 @@
1
+ on: push
2
+ jobs:
3
+ build:
4
+ runs-on: ubuntu-latest
5
+ steps:
6
+ - uses: actions/checkout@v4
7
+ - uses: actions/setup-node@v4
8
+ with:
9
+ node-version: '20'
10
+ cache: 'npm'
11
+ - run: npm ci
12
+ - run: npm test
@@ -0,0 +1,20 @@
1
+ {
2
+ "totals": {
3
+ "error": 0,
4
+ "warning": 0,
5
+ "info": 1
6
+ },
7
+ "ruleIds": [
8
+ "ACT-actions-checkout"
9
+ ],
10
+ "needsReview": [],
11
+ "provenance": {
12
+ "literalRewrites": 2,
13
+ "actionMappings": [
14
+ {
15
+ "action": "actions/setup-python",
16
+ "tier": 1
17
+ }
18
+ ]
19
+ }
20
+ }
@@ -0,0 +1,17 @@
1
+ # Generated by chant migrate from input.yml
2
+
3
+ stages:
4
+ - test
5
+ workflow:
6
+ rules:
7
+ - if: '$CI_PIPELINE_SOURCE == "push"'
8
+
9
+ test:
10
+ image: python:3.12
11
+ cache:
12
+ paths:
13
+ - .cache/pip/
14
+ script:
15
+ - pip install -r requirements.txt
16
+ - pytest
17
+ stage: test
@@ -0,0 +1,12 @@
1
+ on: push
2
+ jobs:
3
+ test:
4
+ runs-on: ubuntu-latest
5
+ steps:
6
+ - uses: actions/checkout@v4
7
+ - uses: actions/setup-python@v5
8
+ with:
9
+ python-version: '3.12'
10
+ cache: 'pip'
11
+ - run: pip install -r requirements.txt
12
+ - run: pytest
@@ -0,0 +1,24 @@
1
+ {
2
+ "totals": {
3
+ "error": 0,
4
+ "warning": 0,
5
+ "info": 1
6
+ },
7
+ "ruleIds": [
8
+ "ACT-actions-checkout"
9
+ ],
10
+ "needsReview": [],
11
+ "provenance": {
12
+ "literalRewrites": 2,
13
+ "actionMappings": [
14
+ {
15
+ "action": "docker/login-action",
16
+ "tier": 1
17
+ },
18
+ {
19
+ "action": "docker/build-push-action",
20
+ "tier": 1
21
+ }
22
+ ]
23
+ }
24
+ }
@@ -0,0 +1,20 @@
1
+ # Generated by chant migrate from input.yml
2
+
3
+ stages:
4
+ - deploy
5
+ workflow:
6
+ rules:
7
+ - if: '$CI_PIPELINE_SOURCE == "push"'
8
+
9
+ publish:
10
+ image: docker:latest
11
+ services:
12
+ - name: docker:dind
13
+ alias: docker
14
+ variables:
15
+ DOCKER_TLS_CERTDIR: /certs
16
+ script:
17
+ - docker login -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }} ghcr.io
18
+ - docker build -f Dockerfile -t ghcr.io/me/img:latest .
19
+ - docker push ghcr.io/me/img:latest
20
+ stage: deploy
@@ -0,0 +1,16 @@
1
+ on: push
2
+ jobs:
3
+ publish:
4
+ runs-on: ubuntu-latest
5
+ steps:
6
+ - uses: actions/checkout@v4
7
+ - uses: docker/login-action@v3
8
+ with:
9
+ registry: ghcr.io
10
+ username: ${{ github.actor }}
11
+ password: ${{ secrets.GITHUB_TOKEN }}
12
+ - uses: docker/build-push-action@v5
13
+ with:
14
+ context: .
15
+ push: true
16
+ tags: ghcr.io/me/img:latest
@@ -0,0 +1,24 @@
1
+ {
2
+ "totals": {
3
+ "error": 0,
4
+ "warning": 0,
5
+ "info": 1
6
+ },
7
+ "ruleIds": [
8
+ "ACT-actions-checkout"
9
+ ],
10
+ "needsReview": [],
11
+ "provenance": {
12
+ "literalRewrites": 4,
13
+ "actionMappings": [
14
+ {
15
+ "action": "actions/upload-artifact",
16
+ "tier": 1
17
+ },
18
+ {
19
+ "action": "actions/download-artifact",
20
+ "tier": 1
21
+ }
22
+ ]
23
+ }
24
+ }
@@ -0,0 +1,27 @@
1
+ # Generated by chant migrate from input.yml
2
+
3
+ stages:
4
+ - build
5
+ - test
6
+ workflow:
7
+ rules:
8
+ - if: '$CI_PIPELINE_SOURCE == "push"'
9
+
10
+ build:
11
+ image: ubuntu:24.04
12
+ artifacts:
13
+ paths:
14
+ - dist/
15
+ name: dist
16
+ expire_in: '7 days'
17
+ script:
18
+ - make build
19
+ stage: build
20
+
21
+ test:
22
+ image: ubuntu:24.04
23
+ needs:
24
+ - build
25
+ script:
26
+ - ./dist/app --test
27
+ stage: test
@@ -0,0 +1,20 @@
1
+ on: push
2
+ jobs:
3
+ build:
4
+ runs-on: ubuntu-latest
5
+ steps:
6
+ - uses: actions/checkout@v4
7
+ - run: make build
8
+ - uses: actions/upload-artifact@v4
9
+ with:
10
+ name: dist
11
+ path: dist/
12
+ retention-days: 7
13
+ test:
14
+ runs-on: ubuntu-latest
15
+ needs: build
16
+ steps:
17
+ - uses: actions/download-artifact@v4
18
+ with:
19
+ name: dist
20
+ - run: ./dist/app --test
@@ -0,0 +1,24 @@
1
+ {
2
+ "totals": {
3
+ "error": 0,
4
+ "warning": 0,
5
+ "info": 1
6
+ },
7
+ "ruleIds": [
8
+ "ACT-actions-checkout"
9
+ ],
10
+ "needsReview": [],
11
+ "provenance": {
12
+ "literalRewrites": 2,
13
+ "actionMappings": [
14
+ {
15
+ "action": "actions/setup-node",
16
+ "tier": 1
17
+ },
18
+ {
19
+ "action": "codecov/codecov-action",
20
+ "tier": 2
21
+ }
22
+ ]
23
+ }
24
+ }
@@ -0,0 +1,15 @@
1
+ # Generated by chant migrate from input.yml
2
+
3
+ stages:
4
+ - test
5
+ workflow:
6
+ rules:
7
+ - if: '$CI_PIPELINE_SOURCE == "push"'
8
+
9
+ test:
10
+ image: node:22
11
+ script:
12
+ - npm test
13
+ - pip install codecov-cli
14
+ - codecovcli upload-process --file ./coverage.xml --token $CODECOV_TOKEN
15
+ stage: test
@@ -0,0 +1,13 @@
1
+ on: push
2
+ jobs:
3
+ test:
4
+ runs-on: ubuntu-latest
5
+ steps:
6
+ - uses: actions/checkout@v4
7
+ - uses: actions/setup-node@v4
8
+ with:
9
+ node-version: '22'
10
+ - run: npm test
11
+ - uses: codecov/codecov-action@v4
12
+ with:
13
+ files: ./coverage.xml
@@ -0,0 +1,20 @@
1
+ {
2
+ "totals": {
3
+ "error": 0,
4
+ "warning": 0,
5
+ "info": 1
6
+ },
7
+ "ruleIds": [
8
+ "ACT-actions-checkout"
9
+ ],
10
+ "needsReview": [],
11
+ "provenance": {
12
+ "literalRewrites": 2,
13
+ "actionMappings": [
14
+ {
15
+ "action": "oven-sh/setup-bun",
16
+ "tier": 2
17
+ }
18
+ ]
19
+ }
20
+ }
@@ -0,0 +1,17 @@
1
+ # Generated by chant migrate from input.yml
2
+
3
+ stages:
4
+ - build
5
+ workflow:
6
+ rules:
7
+ - if: '$CI_PIPELINE_SOURCE == "push"'
8
+
9
+ build:
10
+ image: oven/bun:latest
11
+ cache:
12
+ paths:
13
+ - .bun/install/cache/
14
+ script:
15
+ - bun install
16
+ - bun test
17
+ stage: build
@@ -0,0 +1,11 @@
1
+ on: push
2
+ jobs:
3
+ build:
4
+ runs-on: ubuntu-latest
5
+ steps:
6
+ - uses: actions/checkout@v4
7
+ - uses: oven-sh/setup-bun@v2
8
+ with:
9
+ bun-version: latest
10
+ - run: bun install
11
+ - run: bun test
@@ -0,0 +1,21 @@
1
+ {
2
+ "totals": {
3
+ "error": 0,
4
+ "warning": 1,
5
+ "info": 1
6
+ },
7
+ "ruleIds": [
8
+ "ACT-actions-checkout",
9
+ "ACT-dorny-paths-filter"
10
+ ],
11
+ "needsReview": [
12
+ {
13
+ "line": 1,
14
+ "ruleId": "ACT-dorny-paths-filter"
15
+ }
16
+ ],
17
+ "provenance": {
18
+ "literalRewrites": 2,
19
+ "actionMappings": []
20
+ }
21
+ }
@@ -0,0 +1,15 @@
1
+ # Generated by chant migrate from input.yml
2
+
3
+ stages:
4
+ - build
5
+ workflow:
6
+ rules:
7
+ - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
8
+
9
+ detect:
10
+ image: ubuntu:24.04
11
+ script:
12
+ - '# dorny/paths-filter has no script equivalent in GitLab.'
13
+ - '# Use rules:changes: on each job to gate on file path changes.'
14
+ - '# Example: rules: [{ changes: [''src/backend/**''] }]'
15
+ stage: build
@@ -0,0 +1,11 @@
1
+ on: pull_request
2
+ jobs:
3
+ detect:
4
+ runs-on: ubuntu-latest
5
+ steps:
6
+ - uses: actions/checkout@v4
7
+ - uses: dorny/paths-filter@v3
8
+ with:
9
+ filters: |
10
+ backend:
11
+ - 'src/backend/**'
@@ -0,0 +1,20 @@
1
+ {
2
+ "totals": {
3
+ "error": 0,
4
+ "warning": 1,
5
+ "info": 0
6
+ },
7
+ "ruleIds": [
8
+ "MIG-ON-SCHEDULE"
9
+ ],
10
+ "needsReview": [
11
+ {
12
+ "line": 1,
13
+ "ruleId": "MIG-ON-SCHEDULE"
14
+ }
15
+ ],
16
+ "provenance": {
17
+ "literalRewrites": 4,
18
+ "actionMappings": []
19
+ }
20
+ }
@@ -0,0 +1,16 @@
1
+ # Generated by chant migrate from input.yml
2
+
3
+ stages:
4
+ - build
5
+ workflow:
6
+ name: CI
7
+ rules:
8
+ - if: '$CI_PIPELINE_SOURCE == "push"'
9
+ - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
10
+ - if: '$CI_PIPELINE_SOURCE == "schedule"'
11
+
12
+ build:
13
+ image: ubuntu:24.04
14
+ script:
15
+ - make build
16
+ stage: build
@@ -0,0 +1,12 @@
1
+ name: CI
2
+ on:
3
+ push:
4
+ branches: [main]
5
+ pull_request:
6
+ schedule:
7
+ - cron: '0 6 * * 1'
8
+ jobs:
9
+ build:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - run: make build
@@ -0,0 +1,13 @@
1
+ {
2
+ "totals": {
3
+ "error": 0,
4
+ "warning": 0,
5
+ "info": 0
6
+ },
7
+ "ruleIds": [],
8
+ "needsReview": [],
9
+ "provenance": {
10
+ "literalRewrites": 6,
11
+ "actionMappings": []
12
+ }
13
+ }
@@ -0,0 +1,31 @@
1
+ # Generated by chant migrate from input.yml
2
+
3
+ stages:
4
+ - build
5
+ - test
6
+ - deploy
7
+ workflow:
8
+ rules:
9
+ - if: '$CI_PIPELINE_SOURCE == "push"'
10
+
11
+ build:
12
+ image: ubuntu:24.04
13
+ script:
14
+ - make build
15
+ stage: build
16
+
17
+ deploy:
18
+ image: ubuntu:24.04
19
+ needs:
20
+ - test
21
+ script:
22
+ - make deploy
23
+ stage: deploy
24
+
25
+ test:
26
+ image: ubuntu:24.04
27
+ needs:
28
+ - build
29
+ script:
30
+ - make test
31
+ stage: test
@@ -0,0 +1,16 @@
1
+ on: push
2
+ jobs:
3
+ build:
4
+ runs-on: ubuntu-latest
5
+ steps:
6
+ - run: make build
7
+ test:
8
+ runs-on: ubuntu-latest
9
+ needs: build
10
+ steps:
11
+ - run: make test
12
+ deploy:
13
+ runs-on: ubuntu-latest
14
+ needs: test
15
+ steps:
16
+ - run: make deploy
@@ -0,0 +1,13 @@
1
+ {
2
+ "totals": {
3
+ "error": 0,
4
+ "warning": 0,
5
+ "info": 0
6
+ },
7
+ "ruleIds": [],
8
+ "needsReview": [],
9
+ "provenance": {
10
+ "literalRewrites": 5,
11
+ "actionMappings": []
12
+ }
13
+ }
@@ -0,0 +1,20 @@
1
+ # Generated by chant migrate from input.yml
2
+
3
+ stages:
4
+ - test
5
+ workflow:
6
+ rules:
7
+ - if: '$CI_PIPELINE_SOURCE == "push"'
8
+
9
+ test:
10
+ image: ubuntu:24.04
11
+ parallel:
12
+ matrix:
13
+ - OS: '[ubuntu, debian]'
14
+ NODE:
15
+ - 18
16
+ - 20
17
+ - 22
18
+ script:
19
+ - echo "Testing on $os with Node $node"
20
+ stage: test
@@ -0,0 +1,10 @@
1
+ on: push
2
+ jobs:
3
+ test:
4
+ runs-on: ubuntu-latest
5
+ strategy:
6
+ matrix:
7
+ os: [ubuntu, debian]
8
+ node: [18, 20, 22]
9
+ steps:
10
+ - run: echo "Testing on ${{ matrix.os }} with Node ${{ matrix.node }}"
@@ -0,0 +1,13 @@
1
+ {
2
+ "totals": {
3
+ "error": 0,
4
+ "warning": 0,
5
+ "info": 0
6
+ },
7
+ "ruleIds": [],
8
+ "needsReview": [],
9
+ "provenance": {
10
+ "literalRewrites": 5,
11
+ "actionMappings": []
12
+ }
13
+ }
@@ -0,0 +1,18 @@
1
+ # Generated by chant migrate from input.yml
2
+
3
+ stages:
4
+ - build
5
+ variables:
6
+ GREETING: Hello
7
+ workflow:
8
+ rules:
9
+ - if: '$CI_PIPELINE_SOURCE == "push"'
10
+
11
+ greet:
12
+ image: ubuntu:24.04
13
+ variables:
14
+ NAME: World
15
+ script:
16
+ - echo "$GREETING $NAME"
17
+ - echo "Token is $API_TOKEN"
18
+ stage: build