{"id":46362067,"url":"https://github.com/mettleci/mcix-composite-deploy","last_synced_at":"2026-05-14T14:02:16.544Z","repository":{"id":342147522,"uuid":"1172550409","full_name":"MettleCI/mcix-composite-deploy","owner":"MettleCI","description":"MCIX DataStage Deploy — Invokes the Overlay, DataStageImport, and Compile actions for a DataStage project on IBM Software Hub (Cloud Pak) (from composite/deploy)","archived":false,"fork":false,"pushed_at":"2026-03-05T03:25:09.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-05T04:58:07.708Z","etag":null,"topics":["composite","github-actions","mcix"],"latest_commit_sha":null,"homepage":"https://mcix-composite-deploy.mettleci.io","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MettleCI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-04T12:43:50.000Z","updated_at":"2026-03-05T03:25:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/MettleCI/mcix-composite-deploy","commit_stats":null,"previous_names":["mettleci/mcix-composite-deploy"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/MettleCI/mcix-composite-deploy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MettleCI%2Fmcix-composite-deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MettleCI%2Fmcix-composite-deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MettleCI%2Fmcix-composite-deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MettleCI%2Fmcix-composite-deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MettleCI","download_url":"https://codeload.github.com/MettleCI/mcix-composite-deploy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MettleCI%2Fmcix-composite-deploy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33028203,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composite","github-actions","mcix"],"created_at":"2026-03-05T01:17:37.043Z","updated_at":"2026-05-14T14:02:16.449Z","avatar_url":"https://github.com/MettleCI.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MCIX DataStage Deploy Action\n\nThis composite GitHub Action performs a **full DataStage deployment** by orchestrating three existing MCIX actions in sequence:\n\n1. **Apply overlays** to exported DataStage assets\n2. **Import** the resulting assets into a DataStage project\n3. **Compile** the project and emit a JUnit report\n\nIt is designed to be used from a workflow with a **job-level GitHub Environment**, allowing environment-specific configuration via repository / environment variables.\n\n---\n\n## What this action does\n\n```\nAssets → [Overlay Apply] → [DataStage Import] → [DataStage Compile] → JUnit Report\n```\n\nInternally, this action calls the following MCIX commands/actions in sequence:\n\n- `overlay/apply` [link](https://github.com/mettleci/mcix-overlay-apply)\n- `datastage/import` [link](https://github.com/mettleci/mcix-datastage-import)\n- `datastage/compile` [link](https://github.com/mettleci/mcix-datastage-compile)\n\n---\n\n## Usage\n\n### Minimal example\n\n```yaml\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    environment: prod\n\n    steps:\n      - uses: actions/checkout@v4\n      - name: Deploy DataStage assets\n        uses: your-org/your-repo/composite/deploy@v1\n        with:\n          api-key: ${{ secrets.CP4DKEY }}\n          url: ${{ vars.CP4DHOSTNAME }}\n          user: ${{ vars.CP4DUSERNAME }}\n          assets: dist/assets.zip\n          overlay: overlays/prod\n          project: MyDataStageProject\n````\n\n---\n\n## Inputs\n\n### Authentication (required)\n\n| Input     | Description                               |\n| --------- | ----------------------------------------- |\n| `api-key` | API key used to authenticate to DataStage |\n| `url`     | DataStage service URL                     |\n| `user`    | Username for authentication               |\n\n---\n\n### Target project\n\nExactly **one** of the following must be provided:\n\n| Input        | Description            |\n| ------------ | ---------------------- |\n| `project`    | DataStage project name |\n| `project-id` | DataStage project ID   |\n\n---\n\n### Assets \u0026 overlays\n\n| Input            | Required | Description                                                         |\n| ---------------- | -------- | ------------------------------------------------------------------- |\n| `assets`         | ✅        | Exported DataStage assets (zip or directory)                        |\n| `overlay`        | ✅        | Directory containing overlay files                                  |\n| `properties`     | ❌        | Properties file for value substitution                              |\n| `overlay-output` | ❌        | Path for generated overlaid assets (default: derived automatically) |\n\n---\n\n### Compile options\n\n| Input                        | Required | Default              | Description                             |\n| ---------------------------- | -------- | -------------------- | --------------------------------------- |\n| `report`                     | ❌        | `compile-report.xml` | Path to write the JUnit compile report  |\n\n---\n\n## Outputs\n\n| Output                | Description                            |\n| --------------------- | -------------------------------------- |\n| `overlay-assets`      | Path to the generated overlaid assets  |\n| `import-return-code`  | Return code from the import step       |\n| `compile-return-code` | Return code from the compile step      |\n| `junit-path`          | Path to the generated JUnit XML report |\n\nExample usage:\n\n```yaml\n- name: Upload JUnit report\n  if: always()\n  uses: actions/upload-artifact@v4\n  with:\n    name: datastage-junit\n    path: ${{ steps.deploy.outputs.junit-path }}\n```\n\n---\n\n## Environment configuration (recommended)\n\nThis action works best when used with **GitHub Environments**.\n\nDefine environment-specific values under:\n\n```\nSettings → Environments → \u003cenv\u003e → Variables / Secrets\n```\n\nExample variables:\n\n* `CP4DHOSTNAME`\n* `CP4DUSERNAME`\n\nSecrets:\n\n* `CP4DKEY`\n\nBind the job to the environment:\n\n```yaml\nenvironment: prod\n```\n\n---\n\n## Error handling\n\n* The action **fails fast** if required inputs are missing (i.e. it fails on the first error encountered, without attempting to continue with subsequent steps)\n* Overlay, import, and compile failures are surfaced in the job log and the step summary and/or workflow annotations\n* The JUnit report is still emitted where possible\n\n---\n\n## Design notes\n\n* This is a **composite action**, comprising multiple separate Docker actions\n* All orchestration happens in `action.yml`\n* Paths are normalized relative to `GITHUB_WORKSPACE`\n\n---\n\n## Repository layout\n\n```\n├── composite/\n│   └── deploy/\n├── datastage/\n│   ├── compile/\n│   └── import/\n├── overlay/\n│   └── apply/\n```\n\n---\n\n## License\n\nSee repository license.\n\n\u003c!-- BEGIN MCIX-ACTION-DOCS --\u003e\n# MCIX DataStage Deploy\n\n\u003e [!CAUTION]\n\u003e This action is provided as a **technology preview** which may change, break, or disappear at any point and without warning.\n\nInvokes the Overlay, DataStageImport, and Compile actions for a DataStage project on IBM Software Hub (Cloud Pak)\n\n\u003e Namespace: `composite`\u003cbr\u003e\n\u003e Action: `deploy`\u003cbr\u003e\n\u003e Usage: `${{ github.repository }}/composite/deploy@v1`\n\n... where `v1` is the version of the action you wish to use.\n\n---\n\n## 🚀 Usage\n\nMinimal example:\n\n```yaml\njobs:\n  composite-deploy:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n\n      - name: Run MCIX DataStage Deploy\n        id: composite-deploy\n        uses: ${{ github.repository }}/composite/deploy@v1\n        with:\n          api-key: \u003crequired\u003e\n          url: \u003crequired\u003e\n          user: \u003crequired\u003e\n          assets: \u003crequired\u003e\n          overlays: \u003crequired\u003e\n          # project: \u003coptional\u003e\n          # project-id: \u003coptional\u003e\n          # properties: \u003coptional\u003e\n          # output: \u003coptional\u003e\n          # import-report: import-report.xml\n          # compile-report: compile-report.xml\n          # overlay-additional-args: \u003coptional\u003e\n          # import-additional-args: \u003coptional\u003e\n          # compile-additional-args: \u003coptional\u003e\n```\n\n---\n\n### Project selection rules\n\n- Provide **exactly one** of `project` or `project-id`.\n- If both are supplied, the action should fail fast (ambiguous).\n\n---\n\n## 🔧 Inputs\n\n| Name | Required | Default | Description |\n| --- | --- | --- | --- |\n| `api-key` | ✅ |  | API key for authentication |\n| `url` | ✅ |  | URL of the DataStage server |\n| `user` | ✅ |  | Username for authentication |\n| `project` | ❌ |  | DataStage project name (required if project-id not set) |\n| `project-id` | ❌ |  | DataStage project id (required if project not set) |\n| `assets` | ✅ |  | Path to DataStage export zip file or directory (input assets) |\n| `overlays` | ✅ |  | One or more overlay directories. Overlays are applied in the order specified.\nProvide as comma- or newline-separated list.\nExample:\n  overlays: overlays/base, overlays/customer\n  or\n  overlays: \\|\n    overlays/base\n    overlays/customer |\n| `properties` | ❌ |  | Optional properties file with replacement values |\n| `output` | ❌ |  | Zip file or directory to write updated assets (default: derived) |\n| `import-report` | ❌ | import-report.xml | Path to output the import report |\n| `compile-report` | ❌ | compile-report.xml | Path to output the compile report |\n| `overlay-additional-args` | ❌ |  | Additional raw arguments to append to the overlay apply command |\n| `import-additional-args` | ❌ |  | Additional raw arguments to append to the datastage import command |\n| `compile-additional-args` | ❌ |  | Additional raw arguments to append to the datastage compile command |\n\n---\n\n## 📤 Outputs\n\n| Name | Description |\n| --- | --- |\n| `overlay_output` | Path to the overlaid assets produced by overlay apply |\n| `import-junit-path` | Path to the JUnit report produced by import |\n| `compile-junit-path` | Path to the JUnit report produced by compile |\n| `return-code` | Return code (0 if overlay, import, and compile commands succeeded, otherwise non-zero) |\n\n---\n\n## 🧱 Implementation details\n\n- `runs.using`: `composite`\n\n---\n\n## 🧩 Notes\n\n- The sections above are auto-generated from `action.yml`.\n- To edit this documentation, update `action.yml` (name/description/inputs/outputs).\n\u003c!-- END MCIX-ACTION-DOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmettleci%2Fmcix-composite-deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmettleci%2Fmcix-composite-deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmettleci%2Fmcix-composite-deploy/lists"}