diff --git a/example/.fluentci/.github/workflows/ci.yml b/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index c2228b7..0000000 --- a/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,16 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Tests -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Setup Fluent CI - uses: fluentci-io/setup-fluentci@v2 - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test diff --git a/example/.fluentci/.github/workflows/zenith.yml b/example/.fluentci/.github/workflows/zenith.yml deleted file mode 100644 index 988f44f..0000000 --- a/example/.fluentci/.github/workflows/zenith.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Zenith Example -on: - push: - branches: - - main - -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup Dagger Zenith - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: | - dagger query --doc hello.gql - working-directory: example diff --git a/example/.fluentci/README.md b/example/.fluentci/README.md index 66dd62a..adb0884 100644 --- a/example/.fluentci/README.md +++ b/example/.fluentci/README.md @@ -1,48 +1,111 @@ -# Base Pipeline +# Microcks Pipeline -[![fluentci pipeline](https://img.shields.io/badge/dynamic/json?label=pkg.fluentci.io&labelColor=%23000&color=%23460cf1&url=https%3A%2F%2Fapi.fluentci.io%2Fv1%2Fpipeline%2Fbase_pipeline&query=%24.version)](https://pkg.fluentci.io/base_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.34) +[![fluentci pipeline](https://img.shields.io/badge/dynamic/json?label=pkg.fluentci.io&labelColor=%23000&color=%23460cf1&url=https%3A%2F%2Fapi.fluentci.io%2Fv1%2Fpipeline%2Fmicrocks_pipeline&query=%24.version)](https://pkg.fluentci.io/microcks_pipeline) +![deno compatibility](https://shield.deno.dev/deno/^1.37) -This repository contains a minimal pipeline for a [Fluent CI](https://fluentci.io) project. It is intended to be used as a template for new projects. -Reusing this template will allow you to get started with Fluent CI in a matter of minutes, just run the following command: +A ready-to-use CI/CD Pipeline for importing API specifications into [Microcks](https://microcks.io/) and running [Microcks](https://microcks.io/) tests. + +## 🚀 Usage + +Run the following command: + +```bash +fluentci run microcks_pipeline +``` + +Or, if you want to use it as a template: + +```bash +fluentci init -t microcks +``` + +This will create a `.fluentci` folder in your project. + +Now you can run the pipeline with: ```bash -fluentci init +fluentci run . ``` -## Files Tree Layout +## Dagger Module +Use as a [Dagger](https://dagger.io) module: + +```bash +dagger install github.com/fluent-ci-templates/microcks-pipeline@mod ``` -src -├── aws -│ ├── config_test.ts : AWS CodePipeline Config Test -│ ├── config.ts : AWS CodePipeline Config -│ ├── init.ts : Used by `fluentci ac init` command -│ └── README.md : AWS CodePipeline README -├── azure : Azure Pipelines YAML Generator -│ ├── config_test.ts : Azure Pipelines Config Test -│ ├── config.ts : Azure Pipelines Config -│ ├── init.ts : Used by `fluentci ap init` command -│ └── README.md : Azure Pipelines README -├── circleci : Circle CI YAML Generator -│ ├── config_test.ts : Circle CI Config Test -│ ├── config.ts : Circle CI Config -│ ├── init.ts : Used by `fluentci cci init` command -│ └── README.md : Circle CI README -├── dagger : Dagger pipeline files -│ ├── index.ts : Dagger pipeline entrypoint -│ ├── jobs.ts : Dagger pipeline jobs -│ ├── list_jobs.ts : Used by `fluentci ls` command -│ ├── pipeline.ts : Dagger pipeline definition -│ └── runner.ts : Used by `dagger run fluentci .` command -├── github : Github Actions YAML Generator -│ ├── config_test.ts : Github Actions Config Test -│ ├── config.ts : Github Actions Config -│ ├── init.ts : Used by `fluentci gh init` command -│ └── README.md : Github Actions README -└── gitlab : Gitlab CI YAML Generator - ├── config_test.ts : Gitlab CI Config Test - ├── config.ts : Gitlab CI Config - ├── init.ts : Used by `fluentci gl init` command - └── README.md : Gitlab CI README + +## Environment variables + +| Variable | Description | Default | +| ----------------- | ------------------------- | ---------- | +| SPECIFICATION_FILES | The path to the API specifications | | +| MICROCKS_URL | The URL of the Microcks instance | | +| KEYCLOAK_CLIENT_ID | The Keycloak client ID | | +| KEYCLOAK_CLIENT_SECRET | The Keycloak client secret | | +| API_NAME_AND_VERSION | The name and version of the API to test | | +| TEST_ENDPOINT | The endpoint to test | | +| RUNNER | The runner to use | `HTTP` | +| WAIT_FOR | The time to wait for the test to finish | `5sec` | +| SECRET_NAME | The name of the secret to use | | +| FILTER_OPERATIONS | The operations to filter | | + + + +## Jobs + +| Job | Description | +| ---------------- | ----------------------------------------- | +| import-api-specs | Import API specifications into Microcks | +| run-tests | Launch a Microcks test on an API endpoint | + +```typescript +importApiSpecs( + src: string | Directory, + specificationFiles: string, + microcksURL: string, + keycloakClientId: string, + keycloakClientSecret: string | Secret +): Promise; + +runTests( + apiNameAndVersion: string, + testEndpoint: string, + microcksURL: string, + keycloakClientId: string, + keycloakClientSecret: string | Secret, + runner = "HTTP", + waitFor = "5sec", + secretName?: string, + filterOperations?: string, + operationsHeaders?: string +): Promise; +``` + +## Programmatic usage + +You can also use this pipeline programmatically: + +```ts +import { importApiSpecs, runTests } from "https://pkg.fluentci.io/microcks_pipeline@v0.1.0/mod.ts"; + +await importApiSpecs( + ".", + Deno.env.get("SPECIFICATION_FILES")!, + Deno.env.get("MICROCKS_URL")!, + Deno.env.get("KEYCLOAK_CLIENT_ID")!, + Deno.env.get("KEYCLOAK_CLIENT_SECRET")! +); + +await runTests( + Deno.env.get("API_NAME_AND_VERSION")!, + Deno.env.get("TEST_ENDPOINT")!, + Deno.env.get("MICROCKS_URL")!, + Deno.env.get("KEYCLOAK_CLIENT_ID")!, + Deno.env.get("KEYCLOAK_CLIENT_SECRET")!, + Deno.env.get("RUNNER")!, + Deno.env.get("WAIT_FOR"), + Deno.env.get("SECRET_NAME"), + Deno.env.get("FILTER_OPERATIONS") +); ``` diff --git a/example/.fluentci/ci.ts b/example/.fluentci/ci.ts index 57cf267..72340fb 100644 --- a/example/.fluentci/ci.ts +++ b/example/.fluentci/ci.ts @@ -1,3 +1,24 @@ -import { hello } from "https://pkg.fluentci.io/base_pipeline@v0.5.3/mod.ts"; +import { + importApiSpecs, + runTests, +} from "https://pkg.fluentci.io/microcks_pipeline@v0.1.0/mod.ts"; -await hello(); +await importApiSpecs( + ".", + Deno.env.get("SPECIFICATION_FILES")!, + Deno.env.get("MICROCKS_URL")!, + Deno.env.get("KEYCLOAK_CLIENT_ID")!, + Deno.env.get("KEYCLOAK_CLIENT_SECRET")! +); + +await runTests( + Deno.env.get("API_NAME_AND_VERSION")!, + Deno.env.get("TEST_ENDPOINT")!, + Deno.env.get("MICROCKS_URL")!, + Deno.env.get("KEYCLOAK_CLIENT_ID")!, + Deno.env.get("KEYCLOAK_CLIENT_SECRET")!, + Deno.env.get("RUNNER")!, + Deno.env.get("WAIT_FOR"), + Deno.env.get("SECRET_NAME"), + Deno.env.get("FILTER_OPERATIONS") +); diff --git a/example/.fluentci/dagger.json b/example/.fluentci/dagger.json index 7005423..cd4c711 100644 --- a/example/.fluentci/dagger.json +++ b/example/.fluentci/dagger.json @@ -1,4 +1,7 @@ { - "name": "base", - "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main" + "name": "microcks-pipeline", + "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main", + "version": "v0.1.0", + "description": "Import API specs or run Microcks tests", + "license": "MIT" } \ No newline at end of file diff --git a/example/.fluentci/deno.lock b/example/.fluentci/deno.lock index eeb9cce..0c9837f 100644 --- a/example/.fluentci/deno.lock +++ b/example/.fluentci/deno.lock @@ -1,5 +1,37 @@ { "version": "3", + "packages": { + "specifiers": { + "npm:@types/node": "npm:@types/node@18.16.19", + "npm:nexus": "npm:nexus@1.3.0_graphql@16.8.1" + }, + "npm": { + "@types/node@18.16.19": { + "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", + "dependencies": {} + }, + "graphql@16.8.1": { + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "dependencies": {} + }, + "iterall@1.3.0": { + "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==", + "dependencies": {} + }, + "nexus@1.3.0_graphql@16.8.1": { + "integrity": "sha512-w/s19OiNOs0LrtP7pBmD9/FqJHvZLmCipVRt6v1PM8cRUYIbhEswyNKGHVoC4eHZGPSnD+bOf5A3+gnbt0A5/A==", + "dependencies": { + "graphql": "graphql@16.8.1", + "iterall": "iterall@1.3.0", + "tslib": "tslib@2.6.2" + } + }, + "tslib@2.6.2": { + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dependencies": {} + } + } + }, "remote": { "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/deps.ts": "096395daebc7ed8a18f0484e4ffcc3a7f70e50946735f7df9611a7fcfd8272cc", "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/mod.ts": "e269d71c72ae68e82c1960e5db2a0c7419c97c9683ef717de0ab75d90f364713", @@ -170,6 +202,7 @@ "https://deno.land/x/zod@v3.22.1/locales/en.ts": "a7a25cd23563ccb5e0eed214d9b31846305ddbcdb9c5c8f508b108943366ab4c", "https://deno.land/x/zod@v3.22.1/mod.ts": "64e55237cb4410e17d968cd08975566059f27638ebb0b86048031b987ba251c4", "https://deno.land/x/zod@v3.22.1/types.ts": "4edc1823385f446532c8c9f676d84550c6dc54b17135e34508576647d9612d0e", + "https://esm.sh/@dagger.io/dagger@0.8.8": "15f25b274941de6f12d11de78245bf3d0326ba226212bfea57747b0b2a3e6542", "https://esm.sh/@dagger.io/dagger@0.9.3": "9bd1df6375031727868e2a7aa24e7517d1eba916b49529a412f9a214a0d58992", "https://esm.sh/graphql-tag@2.12.6": "132ebb1ed959bb4dac146160b0cd0fa678c7b9e6bd04f349bf4cacbfb46d0b53", "https://esm.sh/nanoid@4.0.2": "eb872595ebf6390181971c3e477d1b0fe7ea8383d9b66ced7d09ac8f9c4cf2c7", @@ -182,6 +215,7 @@ "https://esm.sh/v128/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", "https://esm.sh/v131/yaml@2.3.1": "1fe2490feb3d9c6d2c71c64dbdbed90acd4164b00628b3c68a311b6731ca38b5", "https://esm.sh/v131/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", + "https://esm.sh/v135/@dagger.io/dagger@0.8.8/denonext/dagger.mjs": "417c7cc5b660567bf8cfbac1edc7192ff7c1325abe152611e05fd0bbefc7c010", "https://esm.sh/v135/@dagger.io/dagger@0.9.3/denonext/dagger.mjs": "998e8e63729621141c0a9b74128db8f81ab7446d1a5d4ff41a6a6b0944db4ddf", "https://esm.sh/v135/adm-zip@0.5.10/denonext/adm-zip.mjs": "9441de5c60a276046d55945f45775d674a319e8e5fd3a8ab7131d8d192d9abb3", "https://esm.sh/v135/chownr@2.0.0/denonext/chownr.mjs": "d7282b2612a9f13c62084c76fc72cdfb20503bccce959178b77b6def14d3ffd2", @@ -223,8 +257,339 @@ "https://esm.sh/v135/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", "https://esm.sh/v135/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", "https://esm.sh/yaml@v2.3.1": "0b42df3dec58b0999df5639390c02346de67b8dae76717a156189855fb616858", + "https://nix.fluentci.io/v0.5.2/deps.ts": "6ccc8510c72998a52c24bc02c848b669413b5ef1d15dccd7e03a25dd0e408564", + "https://nix.fluentci.io/v0.5.2/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", "https://nix.fluentci.io/v0.5.3/deps.ts": "469c1f084eda8d2ee78135b0bf4f9490b80b36d8d0bdb88594167133a918da8e", "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", + "https://pkg.fluentci.io/android_pipeline@v0.9.3/deps.ts": "501d3dd5643449d6576b3b9e08a501fb623fca57e9384a68ab959aef8d82db6f", + "https://pkg.fluentci.io/android_pipeline@v0.9.3/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/android_pipeline@v0.9.3/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/android_pipeline@v0.9.3/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/android_pipeline@v0.9.3/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/android_pipeline@v0.9.3/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/android_pipeline@v0.9.3/src/dagger/jobs.ts": "83f2120b190fedf661d4790586ed043dff2756af2be848fba29d30b990c7478e", + "https://pkg.fluentci.io/android_pipeline@v0.9.3/src/dagger/lib.ts": "e009df7975646c7aac44207ed00b0295eb7a9143f5a8d763a372eefd0e2f7348", + "https://pkg.fluentci.io/ansible_lint_pipeline@3108f29/deps.ts": "62aec736ef9cb2b11f02cb3517a0fa72ed2db5be3392e8ecea5db0ec1f169c00", + "https://pkg.fluentci.io/ansible_lint_pipeline@3108f29/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/ansible_lint_pipeline@3108f29/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/ansible_lint_pipeline@3108f29/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/ansible_lint_pipeline@3108f29/sdk/connect.ts": "2a5a4c62696f39e75cdceb25cd24ed8ff948a8e28ffe46693db76dd502788753", + "https://pkg.fluentci.io/ansible_lint_pipeline@3108f29/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/ansible_lint_pipeline@3108f29/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/ansible_lint_pipeline@3108f29/src/dagger/jobs.ts": "06a4e45f2145fc53987c6cc57f2081177dc5bd1c16a3a71c4598bd459dc136bb", + "https://pkg.fluentci.io/ansible_lint_pipeline@3108f29/src/dagger/lib.ts": "600ce5a944222e2ffec358fdcb418c9706ea48e931284763294976fe2736198e", + "https://pkg.fluentci.io/atlas_pipeline@v0.5.1/deps.ts": "31892aea80371f6b63493f65d21cad6266710a792d9497c87a914338166a0175", + "https://pkg.fluentci.io/atlas_pipeline@v0.5.1/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/atlas_pipeline@v0.5.1/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/atlas_pipeline@v0.5.1/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/atlas_pipeline@v0.5.1/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/atlas_pipeline@v0.5.1/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/atlas_pipeline@v0.5.1/src/dagger/jobs.ts": "696d0fed4c8139ecd7afb6175cbab7ea2282de1065373629c38b0fb0974a8850", + "https://pkg.fluentci.io/atlas_pipeline@v0.5.1/src/dagger/lib.ts": "64ed81cd83704aed6b97a037daa383bdc4f8e846f8ea485582f0fffdabf75d6a", + "https://pkg.fluentci.io/aws_sls_pipeline@v0.1.0/deps.ts": "f02f2b681ce3183437c2cf7508983ee7d78b9362fc66890ea3c4e45f164c962a", + "https://pkg.fluentci.io/aws_sls_pipeline@v0.1.0/src/dagger/jobs.ts": "2a7c12c667bdce6d27402d82aaaeef91dd527180dc4a3f7d3039ab7d0f57c012", + "https://pkg.fluentci.io/base_pipeline@v0.9.5/deps.ts": "c13e863cbb0043b8fc6942013910069e1c75d268c926f4e02495ba403208dcaf", + "https://pkg.fluentci.io/base_pipeline@v0.9.5/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/base_pipeline@v0.9.5/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/base_pipeline@v0.9.5/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/base_pipeline@v0.9.5/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/base_pipeline@v0.9.5/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/base_pipeline@v0.9.5/src/dagger/jobs.ts": "d8d637fcfeade0b9577f80f56847984137fba7cec774b2d65d78fd1e84841cd3", + "https://pkg.fluentci.io/base_pipeline@v0.9.5/src/dagger/lib.ts": "7fb91f5e32902cc35ff82e8c32cfab720963ab1f30d27a2f98abdc1e617a2ba7", + "https://pkg.fluentci.io/fastlane_pipeline@v0.9.5/deps.ts": "168425cdda7335b7100aea4d39b3b4f58eabdb810dc1c7cbcbc11dcfbe9c1428", + "https://pkg.fluentci.io/fastlane_pipeline@v0.9.5/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/fastlane_pipeline@v0.9.5/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/fastlane_pipeline@v0.9.5/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/fastlane_pipeline@v0.9.5/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/fastlane_pipeline@v0.9.5/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/fastlane_pipeline@v0.9.5/src/dagger/jobs.ts": "3d3c1195c8b7da52ecef1dad6d41213a25bbc9e798b38291a6a8020f62df559e", + "https://pkg.fluentci.io/fastlane_pipeline@v0.9.5/src/dagger/lib.ts": "720bc51c55683167e7922c26b3c02f99c1bd4e658985e156f0a89af85a419a6f", + "https://pkg.fluentci.io/firebase_pipeline@v0.4.2/deps.ts": "5c8300e194944fdc41f67b975776774e7193982333d81b20bd7b85940873ff23", + "https://pkg.fluentci.io/firebase_pipeline@v0.4.2/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/firebase_pipeline@v0.4.2/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/firebase_pipeline@v0.4.2/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/firebase_pipeline@v0.4.2/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/firebase_pipeline@v0.4.2/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/firebase_pipeline@v0.4.2/src/dagger/jobs.ts": "c6fe57a5935c0bff27f927e3010b3cd2e7f6e45f43b3d2259321287742eba910", + "https://pkg.fluentci.io/firebase_pipeline@v0.4.2/src/dagger/lib.ts": "bcc4bc79b30e76f1ec3dbadfd3e5443247263c4efd3573ec43f00e7758dd5de7", + "https://pkg.fluentci.io/flutter_pipeline@v0.7.2/deps.ts": "501d3dd5643449d6576b3b9e08a501fb623fca57e9384a68ab959aef8d82db6f", + "https://pkg.fluentci.io/flutter_pipeline@v0.7.2/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/flutter_pipeline@v0.7.2/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/flutter_pipeline@v0.7.2/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/flutter_pipeline@v0.7.2/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/flutter_pipeline@v0.7.2/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/flutter_pipeline@v0.7.2/src/dagger/jobs.ts": "69208877460903b8e78db186bed3dc72a6bf93fb5261dcf93962604e09293e0e", + "https://pkg.fluentci.io/flutter_pipeline@v0.7.2/src/dagger/lib.ts": "e009df7975646c7aac44207ed00b0295eb7a9143f5a8d763a372eefd0e2f7348", + "https://pkg.fluentci.io/fly_pipeline@v0.7.1/deps.ts": "f8a08f5857a5c1b0c974878a10ecd749274ceda4f84bb091ebc81c45e1f63e3a", + "https://pkg.fluentci.io/fly_pipeline@v0.7.1/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/fly_pipeline@v0.7.1/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/fly_pipeline@v0.7.1/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/fly_pipeline@v0.7.1/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/fly_pipeline@v0.7.1/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/fly_pipeline@v0.7.1/src/dagger/jobs.ts": "8e99075537c4537c88f065a0779f33822c6f49fe7dcda7b71377e19c7e3da653", + "https://pkg.fluentci.io/fly_pipeline@v0.7.1/src/dagger/lib.ts": "efb18811bb523f2c81dd965ed02c879464f5dbfaad07ca7a047b2c3ee8f18655", + "https://pkg.fluentci.io/github_pipeline@v0.4.2/deps.ts": "6be99ef02d9ccf097b0b0b29dddfb3214b7c4bd94a2446f853919e1699aca76e", + "https://pkg.fluentci.io/github_pipeline@v0.4.2/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/github_pipeline@v0.4.2/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/github_pipeline@v0.4.2/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/github_pipeline@v0.4.2/sdk/connect.ts": "2a5a4c62696f39e75cdceb25cd24ed8ff948a8e28ffe46693db76dd502788753", + "https://pkg.fluentci.io/github_pipeline@v0.4.2/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/github_pipeline@v0.4.2/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/github_pipeline@v0.4.2/src/dagger/jobs.ts": "eb150baa641d8fd999ef4ed4667ac886c3589c78714d97ff677db33ed7b09b07", + "https://pkg.fluentci.io/github_pipeline@v0.4.2/src/dagger/lib.ts": "941605e412bf2babc2764de72c722e43aaf8e6f80cc0d28526e4729fb559302a", + "https://pkg.fluentci.io/gitlab_pipeline@v0.3.1/deps.ts": "4770b2337e9a1b5589234e76479b8ac74df48bf739540227b2d1097e91263888", + "https://pkg.fluentci.io/gitlab_pipeline@v0.3.1/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/gitlab_pipeline@v0.3.1/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/gitlab_pipeline@v0.3.1/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/gitlab_pipeline@v0.3.1/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/gitlab_pipeline@v0.3.1/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/gitlab_pipeline@v0.3.1/src/dagger/jobs.ts": "d760e4cc32204b6752ff81ee901c970717b5a333e1c89a00392454b2d513d253", + "https://pkg.fluentci.io/gitlab_pipeline@v0.3.1/src/dagger/lib.ts": "c686977cdc1f2e0508769cbffb16929103d42e37381364a37c827e7c1fa64163", + "https://pkg.fluentci.io/gitleaks_pipeline@v0.1.1/deps.ts": "38ca202d7f10709153baa4598ea9ac7930bf649a6db5bd8790b59edb099077cf", + "https://pkg.fluentci.io/gitleaks_pipeline@v0.1.1/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/gitleaks_pipeline@v0.1.1/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/gitleaks_pipeline@v0.1.1/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/gitleaks_pipeline@v0.1.1/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/gitleaks_pipeline@v0.1.1/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/gitleaks_pipeline@v0.1.1/src/dagger/jobs.ts": "c3989a85e982c1cb9e0bc83088431caa9493e4924c30a09c0b516114b54c2ae0", + "https://pkg.fluentci.io/gitleaks_pipeline@v0.1.1/src/dagger/lib.ts": "1dfedcd1bec1a81079a40bdfdfa913ecb243ba56e17a7fbaf1d0577787485e8c", + "https://pkg.fluentci.io/gleam_pipeline@v0.6.3/deps.ts": "d977a0b3278505a638b9dd231902d1ee3a7d531e42f3fb6ae87adec3993292bc", + "https://pkg.fluentci.io/gleam_pipeline@v0.6.3/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/gleam_pipeline@v0.6.3/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/gleam_pipeline@v0.6.3/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/gleam_pipeline@v0.6.3/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/gleam_pipeline@v0.6.3/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/gleam_pipeline@v0.6.3/src/dagger/jobs.ts": "8757cd0f4dd502cb3c99a434db71147d9c0377d25ff477ce35dc46cb84f01ea5", + "https://pkg.fluentci.io/gleam_pipeline@v0.6.3/src/dagger/lib.ts": "7fb91f5e32902cc35ff82e8c32cfab720963ab1f30d27a2f98abdc1e617a2ba7", + "https://pkg.fluentci.io/go_pipeline@v0.9.3/deps.ts": "69cd92ccbdcf421092713dff79879f01b6cdbf5f20092e7362e8a66e51753842", + "https://pkg.fluentci.io/go_pipeline@v0.9.3/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/go_pipeline@v0.9.3/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/go_pipeline@v0.9.3/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/go_pipeline@v0.9.3/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/go_pipeline@v0.9.3/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/go_pipeline@v0.9.3/src/dagger/jobs.ts": "3f6724ff8c5804958a2e98cc95889f19bd66b97096c5c509c9d6cc62b247ff50", + "https://pkg.fluentci.io/go_pipeline@v0.9.3/src/dagger/lib.ts": "e009df7975646c7aac44207ed00b0295eb7a9143f5a8d763a372eefd0e2f7348", + "https://pkg.fluentci.io/gradle_pipeline@v0.7.3/deps.ts": "bd6a74ef2fe6cd534cb6fdd3772e447439fd57b83b6411a37b19a1f2b6ecb2f3", + "https://pkg.fluentci.io/gradle_pipeline@v0.7.3/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/gradle_pipeline@v0.7.3/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/gradle_pipeline@v0.7.3/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/gradle_pipeline@v0.7.3/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/gradle_pipeline@v0.7.3/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/gradle_pipeline@v0.7.3/src/dagger/jobs.ts": "0bff9cb002f2a0905bac16bdc4d12f46239854c10d05725dafb32c83b8f9316b", + "https://pkg.fluentci.io/gradle_pipeline@v0.7.3/src/dagger/lib.ts": "e009df7975646c7aac44207ed00b0295eb7a9143f5a8d763a372eefd0e2f7348", + "https://pkg.fluentci.io/grype_pipeline@v0.4.2/deps.ts": "0dfcda34cdfc58a7d76b4ab9a60ef09a1e3fc6f43c69db8a8f3243b0802c777e", + "https://pkg.fluentci.io/grype_pipeline@v0.4.2/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/grype_pipeline@v0.4.2/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/grype_pipeline@v0.4.2/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/grype_pipeline@v0.4.2/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/grype_pipeline@v0.4.2/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/grype_pipeline@v0.4.2/src/dagger/jobs.ts": "a6bb7572a9b59578800e7372a9af1e95127fe95a9eb2f5a9a849af6950bf4c3b", + "https://pkg.fluentci.io/grype_pipeline@v0.4.2/src/dagger/lib.ts": "e009df7975646c7aac44207ed00b0295eb7a9143f5a8d763a372eefd0e2f7348", + "https://pkg.fluentci.io/heroku_pipeline@v0.7.1/deps.ts": "e5b107b746a8e6b2cdff1cdafe53bec786769f372623bd2a09d0800ccccd811f", + "https://pkg.fluentci.io/heroku_pipeline@v0.7.1/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/heroku_pipeline@v0.7.1/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/heroku_pipeline@v0.7.1/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/heroku_pipeline@v0.7.1/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/heroku_pipeline@v0.7.1/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/heroku_pipeline@v0.7.1/src/dagger/jobs.ts": "80b5c0413f8f3e87790bad79ccc1c8d250745e7f8aace0e4ff631e3710c44e8b", + "https://pkg.fluentci.io/heroku_pipeline@v0.7.1/src/dagger/lib.ts": "08fa92ff92fb323f7b48a3dea3e061fb677e859f45afd86a17c3e89a0265f234", + "https://pkg.fluentci.io/laravel_pipeline@v0.8.2/deps.ts": "f8a08f5857a5c1b0c974878a10ecd749274ceda4f84bb091ebc81c45e1f63e3a", + "https://pkg.fluentci.io/laravel_pipeline@v0.8.2/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/laravel_pipeline@v0.8.2/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/laravel_pipeline@v0.8.2/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/laravel_pipeline@v0.8.2/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/laravel_pipeline@v0.8.2/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/laravel_pipeline@v0.8.2/src/dagger/jobs.ts": "a656e58aa7f7209f00d59387227f5b094e51bdbe176cf25d34346060beed466b", + "https://pkg.fluentci.io/laravel_pipeline@v0.8.2/src/dagger/lib.ts": "1dfedcd1bec1a81079a40bdfdfa913ecb243ba56e17a7fbaf1d0577787485e8c", + "https://pkg.fluentci.io/netlify_pipeline@v0.7.2/deps.ts": "e5b107b746a8e6b2cdff1cdafe53bec786769f372623bd2a09d0800ccccd811f", + "https://pkg.fluentci.io/netlify_pipeline@v0.7.2/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/netlify_pipeline@v0.7.2/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/netlify_pipeline@v0.7.2/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/netlify_pipeline@v0.7.2/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/netlify_pipeline@v0.7.2/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/netlify_pipeline@v0.7.2/src/dagger/jobs.ts": "a7eeca6571bb1ff08b73a840a074c04e858c3cc98735256449f6a60dffeabae0", + "https://pkg.fluentci.io/netlify_pipeline@v0.7.2/src/dagger/lib.ts": "f5ba481fb54dcfa9ba038bf91fc5dbb3dad399257e5003226a80b8d062147aa1", + "https://pkg.fluentci.io/nodejs_pipeline@v0.6.3/deps.ts": "501d3dd5643449d6576b3b9e08a501fb623fca57e9384a68ab959aef8d82db6f", + "https://pkg.fluentci.io/nodejs_pipeline@v0.6.3/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/nodejs_pipeline@v0.6.3/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/nodejs_pipeline@v0.6.3/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/nodejs_pipeline@v0.6.3/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/nodejs_pipeline@v0.6.3/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/nodejs_pipeline@v0.6.3/src/dagger/jobs.ts": "c5176b2214fb1a2337844f67dc8d1599ff897aa14957615748c296321f06b69e", + "https://pkg.fluentci.io/nodejs_pipeline@v0.6.3/src/dagger/lib.ts": "1dfedcd1bec1a81079a40bdfdfa913ecb243ba56e17a7fbaf1d0577787485e8c", + "https://pkg.fluentci.io/php_pipeline@v0.5.2/deps.ts": "0dfcda34cdfc58a7d76b4ab9a60ef09a1e3fc6f43c69db8a8f3243b0802c777e", + "https://pkg.fluentci.io/php_pipeline@v0.5.2/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/php_pipeline@v0.5.2/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/php_pipeline@v0.5.2/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/php_pipeline@v0.5.2/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/php_pipeline@v0.5.2/sdk/nix/index.ts": "d513528cce932d77b76519af86b44f2b249c867bcfa9f6349242b88c5a99f079", + "https://pkg.fluentci.io/php_pipeline@v0.5.2/sdk/nix/steps.ts": "a4ae0aca44fc2a0492b9c0e32d0f6264cbae2fe4167df87de9a1941415192b97", + "https://pkg.fluentci.io/php_pipeline@v0.5.2/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/php_pipeline@v0.5.2/src/dagger/jobs.ts": "9fd3e17e015279d9c589d4916a7d7a0ff62cd24ff0fc972e23bbda178d184db4", + "https://pkg.fluentci.io/php_pipeline@v0.5.2/src/dagger/lib.ts": "1dfedcd1bec1a81079a40bdfdfa913ecb243ba56e17a7fbaf1d0577787485e8c", + "https://pkg.fluentci.io/prisma_pipeline@v0.6.1/deps.ts": "6ee8e51501e9e08fe007d5f262268c9272050f8453bfccf0c60c4f81d129a0fd", + "https://pkg.fluentci.io/prisma_pipeline@v0.6.1/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/prisma_pipeline@v0.6.1/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/prisma_pipeline@v0.6.1/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/prisma_pipeline@v0.6.1/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/prisma_pipeline@v0.6.1/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/prisma_pipeline@v0.6.1/src/dagger/jobs.ts": "c27947796fab80d81bf31f11aa92bcb8db9b31bd4f0580929694d69e804cd546", + "https://pkg.fluentci.io/prisma_pipeline@v0.6.1/src/dagger/lib.ts": "acfaf4719a378f0f08c8b5090f688576bac9df004ba10d173b9ef8eeb25a617f", + "https://pkg.fluentci.io/pulumi_pipeline@v0.3.1/deps.ts": "501d3dd5643449d6576b3b9e08a501fb623fca57e9384a68ab959aef8d82db6f", + "https://pkg.fluentci.io/pulumi_pipeline@v0.3.1/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/pulumi_pipeline@v0.3.1/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/pulumi_pipeline@v0.3.1/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/pulumi_pipeline@v0.3.1/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/pulumi_pipeline@v0.3.1/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/pulumi_pipeline@v0.3.1/src/dagger/jobs.ts": "0a1a68c96b8181265f798d771db1e55d62f43cd51343532bc59924f23c2fa925", + "https://pkg.fluentci.io/pulumi_pipeline@v0.3.1/src/dagger/lib.ts": "61cf768f4d0d95511b51fa407d8d3b5e748e58c76af9e35edf3878e2801a165a", + "https://pkg.fluentci.io/python_pipeline@v0.5.0/deps.ts": "8c6077cd1fc383d6d2151493ca490b99d65934c8b354ec67a697b53ac1e4b153", + "https://pkg.fluentci.io/python_pipeline@v0.5.0/sdk/client.gen.ts": "6a2ab92d9dcf3afb15d8d9c581d55244905e7b66009c09a5d9e3ad31f23e3f1e", + "https://pkg.fluentci.io/python_pipeline@v0.5.0/sdk/connect.ts": "7002e624c42d77c388da45beb0f0174a44b3da95fbbcd51a927e4a1d51ca5728", + "https://pkg.fluentci.io/python_pipeline@v0.5.0/sdk/utils.ts": "37344c95ef06de30e4bfe5ac998d06a19b41097bce380508f3bbbfdad27e1272", + "https://pkg.fluentci.io/python_pipeline@v0.5.0/src/dagger/jobs.ts": "49ee5ee8dcd9b15146d4401e6d9ff38ae19f2cad4ab06a8aeb069cf39cfd023a", + "https://pkg.fluentci.io/python_pipeline@v0.5.0/src/dagger/lib.ts": "1e4baaeb1fe6c195e1a21e1201cd44749275b1d3d92850bf760b7c0721b20903", + "https://pkg.fluentci.io/railway_pipeline@v0.7.1/deps.ts": "e5b107b746a8e6b2cdff1cdafe53bec786769f372623bd2a09d0800ccccd811f", + "https://pkg.fluentci.io/railway_pipeline@v0.7.1/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/railway_pipeline@v0.7.1/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/railway_pipeline@v0.7.1/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/railway_pipeline@v0.7.1/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/railway_pipeline@v0.7.1/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/railway_pipeline@v0.7.1/src/dagger/jobs.ts": "b49d23ae75c41b8b7b4be0aac60d92695a1def2f7f32ee0a5999ef7bb0f519e3", + "https://pkg.fluentci.io/railway_pipeline@v0.7.1/src/dagger/lib.ts": "74896ba551d229a6a0a9e6e56ab0641281ea54abfc420152d8aba91648c33430", + "https://pkg.fluentci.io/ruby_pipeline@v0.8.3/deps.ts": "f8a08f5857a5c1b0c974878a10ecd749274ceda4f84bb091ebc81c45e1f63e3a", + "https://pkg.fluentci.io/ruby_pipeline@v0.8.3/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/ruby_pipeline@v0.8.3/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/ruby_pipeline@v0.8.3/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/ruby_pipeline@v0.8.3/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/ruby_pipeline@v0.8.3/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/ruby_pipeline@v0.8.3/src/dagger/jobs.ts": "e19e0117458408f7fe4a1251a8fdd1304dc37b58178adb21e52fd5d654a4081c", + "https://pkg.fluentci.io/ruby_pipeline@v0.8.3/src/dagger/lib.ts": "e009df7975646c7aac44207ed00b0295eb7a9143f5a8d763a372eefd0e2f7348", + "https://pkg.fluentci.io/rust_pipeline@v0.8.4/deps.ts": "366e0b92c8b7eb9d1d4f5e9c9c8e2afbbe915ada35ba1004005857d5385d32cc", + "https://pkg.fluentci.io/rust_pipeline@v0.8.4/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/rust_pipeline@v0.8.4/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/rust_pipeline@v0.8.4/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/rust_pipeline@v0.8.4/sdk/connect.ts": "2a5a4c62696f39e75cdceb25cd24ed8ff948a8e28ffe46693db76dd502788753", + "https://pkg.fluentci.io/rust_pipeline@v0.8.4/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/rust_pipeline@v0.8.4/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/rust_pipeline@v0.8.4/src/dagger/jobs.ts": "9ea4ec2e04cf8a19b625c3ec9dc16fc04aecb3181d232ccdf85c54b01f64e165", + "https://pkg.fluentci.io/shuttle_pipeline@v0.7.3/deps.ts": "3b55fcfbdda7a0d158605d411976b96002e42437dcdb960c926778f7838e9b58", + "https://pkg.fluentci.io/shuttle_pipeline@v0.7.3/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/shuttle_pipeline@v0.7.3/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/shuttle_pipeline@v0.7.3/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/shuttle_pipeline@v0.7.3/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/shuttle_pipeline@v0.7.3/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/shuttle_pipeline@v0.7.3/src/dagger/jobs.ts": "b599b6f0f8ef6eda06a92b16bc7fc0b9cec7baf30dff21574f6b73860d044d71", + "https://pkg.fluentci.io/shuttle_pipeline@v0.7.3/src/dagger/lib.ts": "02bbca78df7037f7c1e16aae82361a741b6c1c77aea16ee1bcb4d4549da5579a", + "https://pkg.fluentci.io/snyk_pipeline@v0.4.1/deps.ts": "6ee8e51501e9e08fe007d5f262268c9272050f8453bfccf0c60c4f81d129a0fd", + "https://pkg.fluentci.io/snyk_pipeline@v0.4.1/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/snyk_pipeline@v0.4.1/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/snyk_pipeline@v0.4.1/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/snyk_pipeline@v0.4.1/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/snyk_pipeline@v0.4.1/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/snyk_pipeline@v0.4.1/src/dagger/jobs.ts": "b6b2362b784419dc34e63ab8cd722d39c13242f7f9cdca8cc1d2b5b4104b80a0", + "https://pkg.fluentci.io/snyk_pipeline@v0.4.1/src/dagger/lib.ts": "6e30556dfcad02c695f214d53f728f1a7f7bfb0b6654a96dbce6f4ca7f4eb7a7", + "https://pkg.fluentci.io/sonar_pipeline@v0.4.2/deps.ts": "4560ac5b93f8579016b863c1f13416b228a1b433e2b29ae498b2063cea62b059", + "https://pkg.fluentci.io/sonar_pipeline@v0.4.2/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/sonar_pipeline@v0.4.2/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/sonar_pipeline@v0.4.2/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/sonar_pipeline@v0.4.2/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/sonar_pipeline@v0.4.2/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/sonar_pipeline@v0.4.2/src/dagger/jobs.ts": "b1861c182b17ed277137b7cb481bc5e7526f78809eaa7bb74ab44c7d7f1a9a3c", + "https://pkg.fluentci.io/sonar_pipeline@v0.4.2/src/dagger/lib.ts": "b23c78b0b834f26f47f744e45fd2d75db767e60208b0527e37045491dbd0d6d8", + "https://pkg.fluentci.io/spin_pipeline@v0.8.2/deps.ts": "6ee8e51501e9e08fe007d5f262268c9272050f8453bfccf0c60c4f81d129a0fd", + "https://pkg.fluentci.io/spin_pipeline@v0.8.2/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/spin_pipeline@v0.8.2/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/spin_pipeline@v0.8.2/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/spin_pipeline@v0.8.2/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/spin_pipeline@v0.8.2/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/spin_pipeline@v0.8.2/src/dagger/jobs.ts": "ed63f96d1d6e1d3688eade46cdeb3918c06af4c732009712bd8a1f58378141e5", + "https://pkg.fluentci.io/spin_pipeline@v0.8.2/src/dagger/lib.ts": "6fdbdf483621276f9e8e1061a892e6e37aec0ef1654f4990ede1d96f4cbffa75", + "https://pkg.fluentci.io/supabase_pipeline@v0.4.2/deps.ts": "e5b107b746a8e6b2cdff1cdafe53bec786769f372623bd2a09d0800ccccd811f", + "https://pkg.fluentci.io/supabase_pipeline@v0.4.2/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/supabase_pipeline@v0.4.2/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/supabase_pipeline@v0.4.2/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/supabase_pipeline@v0.4.2/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/supabase_pipeline@v0.4.2/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/supabase_pipeline@v0.4.2/src/dagger/jobs.ts": "0649a5a55175136e4de37b5b1f43bb80c9f5c428bd03b6d970d9fe304e61d0df", + "https://pkg.fluentci.io/supabase_pipeline@v0.4.2/src/dagger/lib.ts": "bca10e5c8a04ad358824c91172f6e92a1d19ea80d2e6a1ab1e2aeafeea49effd", + "https://pkg.fluentci.io/swift_pipeline@v0.5.0/deps.ts": "8c6077cd1fc383d6d2151493ca490b99d65934c8b354ec67a697b53ac1e4b153", + "https://pkg.fluentci.io/swift_pipeline@v0.5.0/sdk/client.gen.ts": "6a2ab92d9dcf3afb15d8d9c581d55244905e7b66009c09a5d9e3ad31f23e3f1e", + "https://pkg.fluentci.io/swift_pipeline@v0.5.0/sdk/connect.ts": "7002e624c42d77c388da45beb0f0174a44b3da95fbbcd51a927e4a1d51ca5728", + "https://pkg.fluentci.io/swift_pipeline@v0.5.0/sdk/utils.ts": "37344c95ef06de30e4bfe5ac998d06a19b41097bce380508f3bbbfdad27e1272", + "https://pkg.fluentci.io/swift_pipeline@v0.5.0/src/dagger/jobs.ts": "d9930f8c0cd0f998b76bb5f5ccbc49b10cd8a40fe2e4c06087106d0f5acd0e11", + "https://pkg.fluentci.io/swift_pipeline@v0.5.0/src/dagger/lib.ts": "1e4baaeb1fe6c195e1a21e1201cd44749275b1d3d92850bf760b7c0721b20903", + "https://pkg.fluentci.io/syft_pipeline@v0.3.2/deps.ts": "0dfcda34cdfc58a7d76b4ab9a60ef09a1e3fc6f43c69db8a8f3243b0802c777e", + "https://pkg.fluentci.io/syft_pipeline@v0.3.2/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/syft_pipeline@v0.3.2/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/syft_pipeline@v0.3.2/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/syft_pipeline@v0.3.2/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/syft_pipeline@v0.3.2/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/syft_pipeline@v0.3.2/src/dagger/jobs.ts": "bd97a30089086f2c4cacd6b837b6f6678ba7d851268ad722a58f7df416da6dae", + "https://pkg.fluentci.io/syft_pipeline@v0.3.2/src/dagger/lib.ts": "e009df7975646c7aac44207ed00b0295eb7a9143f5a8d763a372eefd0e2f7348", + "https://pkg.fluentci.io/symfony_pipeline@v0.7.5/deps.ts": "f8a08f5857a5c1b0c974878a10ecd749274ceda4f84bb091ebc81c45e1f63e3a", + "https://pkg.fluentci.io/symfony_pipeline@v0.7.5/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/symfony_pipeline@v0.7.5/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/symfony_pipeline@v0.7.5/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/symfony_pipeline@v0.7.5/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/symfony_pipeline@v0.7.5/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/symfony_pipeline@v0.7.5/src/dagger/jobs.ts": "2580912430051f1a081a073869bc7c0fbef93aa37b8b816bc388ccbdccffe645", + "https://pkg.fluentci.io/symfony_pipeline@v0.7.5/src/dagger/lib.ts": "e009df7975646c7aac44207ed00b0295eb7a9143f5a8d763a372eefd0e2f7348", + "https://pkg.fluentci.io/terraform_docs_pipeline@3108f29/deps.ts": "389f2ee0d1adb0afcd85a3570ee3c78d90ebc7ed4c36c17f2698d9de695e2cce", + "https://pkg.fluentci.io/terraform_docs_pipeline@3108f29/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/terraform_docs_pipeline@3108f29/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/terraform_docs_pipeline@3108f29/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/terraform_docs_pipeline@3108f29/sdk/connect.ts": "2a5a4c62696f39e75cdceb25cd24ed8ff948a8e28ffe46693db76dd502788753", + "https://pkg.fluentci.io/terraform_docs_pipeline@3108f29/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/terraform_docs_pipeline@3108f29/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/terraform_docs_pipeline@3108f29/src/dagger/jobs.ts": "04f611a98acaae6c5ad7c714c40d9f3fb361f923c7c68de364733aa397361cbf", + "https://pkg.fluentci.io/terraform_docs_pipeline@3108f29/src/dagger/lib.ts": "1dfedcd1bec1a81079a40bdfdfa913ecb243ba56e17a7fbaf1d0577787485e8c", + "https://pkg.fluentci.io/terraform_pipeline@v0.6.3/deps.ts": "501d3dd5643449d6576b3b9e08a501fb623fca57e9384a68ab959aef8d82db6f", + "https://pkg.fluentci.io/terraform_pipeline@v0.6.3/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/terraform_pipeline@v0.6.3/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/terraform_pipeline@v0.6.3/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/terraform_pipeline@v0.6.3/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/terraform_pipeline@v0.6.3/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/terraform_pipeline@v0.6.3/src/dagger/jobs.ts": "4ffcc55f4947435db3aa6282a3f47f6492d3afdf60491547dfb1172a421ec27e", + "https://pkg.fluentci.io/terraform_pipeline@v0.6.3/src/dagger/lib.ts": "9fef40c3008fe4163912ef2ab96dd3cbd52ef3f7aa97a8f57a93a60aeb3ab648", + "https://pkg.fluentci.io/terragrunt_pipeline@v0.6.1/deps.ts": "c0e7c01a4b1f2a97bcbdfa4490e8d439316af4a201b212583d7223a0e6ba090e", + "https://pkg.fluentci.io/terragrunt_pipeline@v0.6.1/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/terragrunt_pipeline@v0.6.1/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/terragrunt_pipeline@v0.6.1/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/terragrunt_pipeline@v0.6.1/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/terragrunt_pipeline@v0.6.1/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/terragrunt_pipeline@v0.6.1/src/dagger/jobs.ts": "abec3476c8527296102a288e0c37929759fb7a5e49d6e93acab139dff6ff1848", + "https://pkg.fluentci.io/terragrunt_pipeline@v0.6.1/src/dagger/lib.ts": "c3f935ca68245556a0f9ae5493c89c897d0b66852c7785afc6c46ed91c173207", + "https://pkg.fluentci.io/trivy_pipeline@v0.3.2/deps.ts": "f8a08f5857a5c1b0c974878a10ecd749274ceda4f84bb091ebc81c45e1f63e3a", + "https://pkg.fluentci.io/trivy_pipeline@v0.3.2/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/trivy_pipeline@v0.3.2/sdk/client.gen.ts": "14876054a3e3d975573ec0fb4839e150e69152a05ccdfb8acb046460a7fdd89c", + "https://pkg.fluentci.io/trivy_pipeline@v0.3.2/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/trivy_pipeline@v0.3.2/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/trivy_pipeline@v0.3.2/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/trivy_pipeline@v0.3.2/src/dagger/jobs.ts": "81e7e17c1fba2671c7020ca7e1825e050acdf2a28d67d2078ad9d7a0a894d5b3", + "https://pkg.fluentci.io/trivy_pipeline@v0.3.2/src/dagger/lib.ts": "e009df7975646c7aac44207ed00b0295eb7a9143f5a8d763a372eefd0e2f7348", + "https://pkg.fluentci.io/wasmer_pipeline@v0.3.1/deps.ts": "3b55fcfbdda7a0d158605d411976b96002e42437dcdb960c926778f7838e9b58", + "https://pkg.fluentci.io/wasmer_pipeline@v0.3.1/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/wasmer_pipeline@v0.3.1/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/wasmer_pipeline@v0.3.1/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/wasmer_pipeline@v0.3.1/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/wasmer_pipeline@v0.3.1/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/wasmer_pipeline@v0.3.1/src/dagger/jobs.ts": "65962883d3229161c332c92d86314a0a04f391108babd730a05a3bd7687d67a5", + "https://pkg.fluentci.io/wasmer_pipeline@v0.3.1/src/dagger/lib.ts": "05ed795f3b9b191501509a91f92ed937a17953e09eb7f1f61359c5566ed0dc76", + "https://pkg.fluentci.io/wiremock_pipeline@3108f29/deps.ts": "2c86c037786c74ac980a565687654c78eb8cc427400fad4cfcc43018989d4d3b", + "https://pkg.fluentci.io/wiremock_pipeline@3108f29/sdk/builder.ts": "608f7bcae267d7cac74ee3bd8cb3b35697b1002c917a3ad01901768c2d4de8bf", + "https://pkg.fluentci.io/wiremock_pipeline@3108f29/sdk/client.gen.ts": "0e3ee73d81868160c14d7577dbc79d4c3a339fa920b767be984449666a1f9879", + "https://pkg.fluentci.io/wiremock_pipeline@3108f29/sdk/client.ts": "b879f0a00d27c231bfce8ec70ad3f320d5d5b40b3f58f1af37303639d3f18c63", + "https://pkg.fluentci.io/wiremock_pipeline@3108f29/sdk/context.ts": "827aedd9ef20c4c9ab8b53f3f466bc85de62860e031cad91d248ce2f994c3e19", + "https://pkg.fluentci.io/wiremock_pipeline@3108f29/sdk/utils.ts": "02826cbba0b5dec6f4ec7085002abc9e6dca727c0dc0b922bdec43b539412fd3", + "https://pkg.fluentci.io/wiremock_pipeline@3108f29/src/dagger/jobs.ts": "7d7d12070e2f1716bdd4ca52e1a990f6dabae1011d2244417c98ea539f7ee73c", + "https://pkg.fluentci.io/wiremock_pipeline@3108f29/src/dagger/lib.ts": "1dfedcd1bec1a81079a40bdfdfa913ecb243ba56e17a7fbaf1d0577787485e8c", + "https://sdk.fluentci.io/v0.2.0/deps.ts": "20dd191afaf88662b82c2a42164afe6d06f2e79942f40ce07aa0972719fc858f", + "https://sdk.fluentci.io/v0.2.0/mod.ts": "261ba81a4728f5def4e327a5cd80664ea8449515a2f4eea5f3f416acae39a1fa", + "https://sdk.fluentci.io/v0.2.0/src/client.ts": "d350d4f59763e32a9b35f3f06f0b1058e5c8e5a3824e6d096cdaf3fc4332dcf6", + "https://sdk.fluentci.io/v0.2.0/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", + "https://sdk.fluentci.io/v0.2.0/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", + "https://sdk.fluentci.io/v0.2.0/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308", "https://sdk.fluentci.io/v0.3.0/deps.ts": "3a145e76b4345a9a7888f09b1b48cb54523ebfa43247a1abebc40a9e82d555f4", "https://sdk.fluentci.io/v0.3.0/mod.ts": "261ba81a4728f5def4e327a5cd80664ea8449515a2f4eea5f3f416acae39a1fa", "https://sdk.fluentci.io/v0.3.0/src/client.ts": "7f1df4b1fee62dd6f946fa9d15d47a37b938ffb4ac91faf3d39b44b83d4f5921", diff --git a/example/.fluentci/deps.ts b/example/.fluentci/deps.ts index 438b146..84f916b 100644 --- a/example/.fluentci/deps.ts +++ b/example/.fluentci/deps.ts @@ -1,6 +1,4 @@ export { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { Client } from "./sdk/client.gen.ts"; -export default Client; export { Directory, Container, dag } from "./sdk/client.gen.ts"; export type { DirectoryID } from "./sdk/client.gen.ts"; diff --git a/example/.fluentci/fixtures/.gitlab-ci.yml b/example/.fluentci/fixtures/.gitlab-ci.yml index 1ada577..0b6a33b 100644 --- a/example/.fluentci/fixtures/.gitlab-ci.yml +++ b/example/.fluentci/fixtures/.gitlab-ci.yml @@ -17,7 +17,7 @@ before_script: - apk add docker-cli curl unzip - deno install -A -r https://cli.fluentci.io -n fluentci - - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh + - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.7 sh - mv bin/dagger /usr/local/bin - dagger version diff --git a/example/.fluentci/fixtures/azure-pipelines.yml b/example/.fluentci/fixtures/azure-pipelines.yml index 89165ff..5f1190c 100644 --- a/example/.fluentci/fixtures/azure-pipelines.yml +++ b/example/.fluentci/fixtures/azure-pipelines.yml @@ -14,7 +14,7 @@ steps: - script: deno install -A -r https://cli.fluentci.io -n fluentci displayName: Setup Fluent CI CLI - script: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh + curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.7 sh sudo mv bin/dagger /usr/local/bin dagger version displayName: Setup Dagger diff --git a/example/.fluentci/fixtures/base.yml b/example/.fluentci/fixtures/base.yml index 2658385..dcf3566 100644 --- a/example/.fluentci/fixtures/base.yml +++ b/example/.fluentci/fixtures/base.yml @@ -11,6 +11,6 @@ jobs: steps: - uses: actions/checkout@v3 - name: Setup Fluent CI - uses: fluentci-io/setup-fluentci@v2 + uses: fluentci-io/setup-fluentci@v3 - name: Run Dagger Pipelines run: fluentci run . diff --git a/example/.fluentci/fixtures/buildspec.yml b/example/.fluentci/fixtures/buildspec.yml index 8cc9b4e..7e33625 100644 --- a/example/.fluentci/fixtures/buildspec.yml +++ b/example/.fluentci/fixtures/buildspec.yml @@ -8,7 +8,7 @@ phases: - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - deno install -A -r https://cli.fluentci.io -n fluentci - - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh + - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.7 sh - mv bin/dagger /usr/local/bin - dagger version build: diff --git a/example/.fluentci/fixtures/config.yml b/example/.fluentci/fixtures/config.yml index 231a6c2..9f7140a 100644 --- a/example/.fluentci/fixtures/config.yml +++ b/example/.fluentci/fixtures/config.yml @@ -12,7 +12,7 @@ jobs: export PATH="$DENO_INSTALL/bin:$PATH" - run: deno install -A -r https://cli.fluentci.io -n fluentci - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh + curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.7 sh sudo mv bin/dagger /usr/local/bin dagger version - run: diff --git a/example/.fluentci/src/aws/config.ts b/example/.fluentci/src/aws/config.ts index 0396b2d..c0ff365 100644 --- a/example/.fluentci/src/aws/config.ts +++ b/example/.fluentci/src/aws/config.ts @@ -9,7 +9,7 @@ export function generateYaml(): BuildSpec { 'export DENO_INSTALL="$HOME/.deno"', 'export PATH="$DENO_INSTALL/bin:$PATH"', "deno install -A -r https://cli.fluentci.io -n fluentci", - "curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh", + "curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.7 sh", "mv bin/dagger /usr/local/bin", "dagger version", ], diff --git a/example/.fluentci/src/azure/config.ts b/example/.fluentci/src/azure/config.ts index ddbc29c..98eb2a3 100644 --- a/example/.fluentci/src/azure/config.ts +++ b/example/.fluentci/src/azure/config.ts @@ -10,7 +10,7 @@ export function generateYaml(): AzurePipeline { `; const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh + curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.7 sh sudo mv bin/dagger /usr/local/bin dagger version `; diff --git a/example/.fluentci/src/circleci/config.ts b/example/.fluentci/src/circleci/config.ts index ab3a035..0a3225c 100644 --- a/example/.fluentci/src/circleci/config.ts +++ b/example/.fluentci/src/circleci/config.ts @@ -19,7 +19,7 @@ export PATH="$DENO_INSTALL/bin:$PATH"`, }, { run: `\ -curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh +curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.7 sh sudo mv bin/dagger /usr/local/bin dagger version`, }, diff --git a/example/.fluentci/src/dagger/index.ts b/example/.fluentci/src/dagger/index.ts index f495df4..74d6b21 100644 --- a/example/.fluentci/src/dagger/index.ts +++ b/example/.fluentci/src/dagger/index.ts @@ -1,4 +1,4 @@ import pipeline from "./pipeline.ts"; -import { hello, jobDescriptions } from "./jobs.ts"; +import { importApiSpecs, runTests, jobDescriptions } from "./jobs.ts"; -export { pipeline, hello, jobDescriptions }; +export { importApiSpecs, runTests, pipeline, jobDescriptions }; diff --git a/example/.fluentci/src/dagger/jobs.ts b/example/.fluentci/src/dagger/jobs.ts index 9b04bd6..cfb59cd 100644 --- a/example/.fluentci/src/dagger/jobs.ts +++ b/example/.fluentci/src/dagger/jobs.ts @@ -1,47 +1,148 @@ +/** + * @module microcks + * @description Import API specifications into Microcks and run Microcks tests + */ + import { Directory, dag } from "../../deps.ts"; -import { getDirectory } from "./lib.ts"; +import { Secret } from "../../sdk/client.gen.ts"; +import { getDirectory, getKeycloakClientSecret } from "./lib.ts"; export enum Job { - hello = "hello", + importApiSpecs = "import-api-specs", + runTests = "run-tests", } export const exclude = []; /** * @function - * @description Say hello + * @description Import API specifications into Microcks * @param src {src: string | Directory | undefined} + * @param specificationFiles {specificationFiles: string} + * @param microcksURL {microcksURL: string} + * @param keycloakClientId {keycloakClientId: string} + * @param keycloakClientSecret {keycloakClientSecret: string | Secret} * @returns {string} */ -export async function hello( - src: string | Directory | undefined = "." +export async function importApiSpecs( + src: string | Directory, + specificationFiles: string, + microcksURL: string, + keycloakClientId: string, + keycloakClientSecret: string | Secret ): Promise { + const secret = await getKeycloakClientSecret(dag, keycloakClientSecret); const context = await getDirectory(dag, src); const ctr = dag - .pipeline("hello") + .pipeline(Job.importApiSpecs) .container() - .from("alpine") + .from("quay.io/microcks/microcks-cli:0.5.3") .withDirectory("/app", context) .withWorkdir("/app") - .withExec(["echo", "'Hello, world!'"]); + .withEnvVariable("SPECIFICATION_FILES", specificationFiles) + .withEnvVariable("MICROCKS_URL", microcksURL) + .withEnvVariable("KEYCLOAK_CLIENT_ID", keycloakClientId) + .withSecretVariable("KEYCLOAK_CLIENT_SECRET", secret) + .withExec([ + "bash", + "-c", + `\ + microcks-cli import "$SPECIFICATION_FILES" \ + --microcksURL=$MICROCKS_URL \ + --keycloakClientId=$KEYCKLOAK_CLIENT_ID --keycloakClientSecret=$KEYCLOAK_CLIENT_SECRET \ + --insecure + `, + ]); + + const result = await ctr.stdout(); + return result; +} + +/** + * @function + * @description Launch a Microcks test on an API endpoint + * @param apiNameAndVersion {apiNameAndVersion: string} + * @param testEndpoint {testEndpoint: string} + * @param runner {runner: string} + * @param microcksURL {microcksURL: string} + * @param waitFor {waitFor: string} + * @param secretName {secretName: string} + * @param keycloakClientId {keycloakClientId: string} + * @param keycloakClientSecret {keycloakClientSecret: string | Secret} + * @param filterOperations {filterOperations: string} + * @param operationsHeaders {operationsHeaders: string} + * @returns {string} + */ +export async function runTests( + apiNameAndVersion: string, + testEndpoint: string, + microcksURL: string, + keycloakClientId: string, + keycloakClientSecret: string | Secret, + runner = "HTTP", + waitFor = "5sec", + secretName?: string, + filterOperations?: string, + operationsHeaders?: string +): Promise { + const secret = await getKeycloakClientSecret(dag, keycloakClientSecret); + const ctr = dag + .pipeline(Job.runTests) + .container() + .from("quay.io/microcks/microcks-cli:0.5.3") + .withWorkdir("/app") + .withEnvVariable("API_NAME_AND_VERSION", apiNameAndVersion) + .withEnvVariable("TEST_ENDPOINT", testEndpoint) + .withEnvVariable("MICROCKS_URL", microcksURL) + .withEnvVariable("KEYCLOAK_CLIENT_ID", keycloakClientId) + .withSecretVariable("KEYCLOAK_CLIENT_SECRET", secret) + .withEnvVariable("RUNNER", runner) + .withEnvVariable("WAIT_FOR", waitFor) + .withEnvVariable("SECRET_NAME", secretName || "") + .withEnvVariable("FILTER_OPERATIONS", filterOperations || "") + .withEnvVariable("OPERATIONS_HEADERS", operationsHeaders || "") + .withExec([ + "bash", + "-c", + `\ + microcks-cli test "$API_NAME_AND_VERSION" $TEST_ENDPOINT $RUNNER \ + --microcksURL=$MICROCKS_URL --waitFor=$WAIT_FOR --secretName="$SECRET_NAME" \ + --keycloakClientId=$KEYCLOAK_CIENT_ID --keycloakClientSecret=$KEYCLOAK_CLIENT_SECRET \ + --insecure --filteredOperations="$FILTER_OPERATIONS" --operationsHeaders="$OPERATIONS_HEADERS" \ + `, + ]); const result = await ctr.stdout(); - return result.replace(/(\r\n|\n|\r)/gm, ""); + return result; } -export type JobExec = (src?: string) => - | Promise +export type JobExec = + | (( + src: string | Directory, + specificationFiles: string, + microcksURL: string, + keycloakClientId: string, + keycloakClientSecret: string | Secret + ) => Promise) | (( - src?: string, - options?: { - ignore: string[]; - } + apiNameAndVersion: string, + testEndpoint: string, + microcksURL: string, + keycloakClientId: string, + keycloakClientSecret: string | Secret, + runner?: string, + waitFor?: string, + secretName?: string, + filterOperations?: string, + operationsHeaders?: string ) => Promise); export const runnableJobs: Record = { - [Job.hello]: hello, + [Job.importApiSpecs]: importApiSpecs, + [Job.runTests]: runTests, }; export const jobDescriptions: Record = { - [Job.hello]: "Say hello", + [Job.importApiSpecs]: "Import API specifications into Microcks", + [Job.runTests]: "Launch a Microcks test on an API endpoint", }; diff --git a/example/.fluentci/src/dagger/lib.ts b/example/.fluentci/src/dagger/lib.ts index 166aa97..3b71cb1 100644 --- a/example/.fluentci/src/dagger/lib.ts +++ b/example/.fluentci/src/dagger/lib.ts @@ -1,4 +1,5 @@ -import Client, { Directory, DirectoryID } from "../../deps.ts"; +import { Directory, DirectoryID } from "../../deps.ts"; +import { Secret, Client, SecretID } from "../../sdk/client.gen.ts"; export const getDirectory = async ( client: Client, @@ -22,3 +23,28 @@ export const getDirectory = async ( ? client.host().directory(src) : client.currentModule().source().directory(src); }; + +export const getKeycloakClientSecret = async ( + client: Client, + kcSecret: string | Secret +) => { + if (Deno.env.get("KEYCLOAK_CLIENT_SECRET")) { + return client.setSecret( + "KEYCLOAK_CLIENT_SECRET", + Deno.env.get("KEYCLOAK_CLIENT_SECRET")! + ); + } + if (kcSecret && typeof kcSecret === "string") { + try { + const secret = client.loadSecretFromID(kcSecret as SecretID); + await secret.id(); + return secret; + } catch (_) { + return client.setSecret("KEYCLOAK_CLIENT_SECRET", kcSecret); + } + } + if (kcSecret && kcSecret instanceof Secret) { + return kcSecret; + } + throw new Error("KEYCLOAK_CLIENT_SECRET not found"); +}; diff --git a/example/.fluentci/src/dagger/list_jobs.ts b/example/.fluentci/src/dagger/list_jobs.ts index e69fc37..d80c04d 100644 --- a/example/.fluentci/src/dagger/list_jobs.ts +++ b/example/.fluentci/src/dagger/list_jobs.ts @@ -2,7 +2,7 @@ import { brightGreen, stringifyTree } from "../../deps.ts"; import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; const tree = { - name: brightGreen("base_pipeline"), + name: brightGreen("microcks_pipeline"), children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ name: jobDescriptions[job] ? `${brightGreen(job)} - ${jobDescriptions[job]}` diff --git a/example/.fluentci/src/dagger/pipeline.ts b/example/.fluentci/src/dagger/pipeline.ts index fa113c6..bd5d0da 100644 --- a/example/.fluentci/src/dagger/pipeline.ts +++ b/example/.fluentci/src/dagger/pipeline.ts @@ -1,6 +1,6 @@ import * as jobs from "./jobs.ts"; -const { hello, runnableJobs, exclude } = jobs; +const { importApiSpecs, runTests, runnableJobs } = jobs; export default async function pipeline(src = ".", args: string[] = []) { if (args.length > 0) { @@ -8,7 +8,13 @@ export default async function pipeline(src = ".", args: string[] = []) { return; } - await hello(); + await importApiSpecs( + src, + "specifications", + Deno.env.get("MICROCKS_URL")!, + Deno.env.get("KEYCLOAK_CLIENT_ID")!, + Deno.env.get("KEYCLOAK_CLIENT_SECRET")! + ); } async function runSpecificJobs(args: jobs.Job[]) { @@ -17,6 +23,31 @@ async function runSpecificJobs(args: jobs.Job[]) { if (!job) { throw new Error(`Job ${name} not found`); } - await job(); + switch (name) { + case jobs.Job.importApiSpecs: + await importApiSpecs( + ".", + Deno.env.get("SPECIFICATION_FILES")!, + Deno.env.get("MICROCKS_URL")!, + Deno.env.get("KEYCLOAK_CLIENT_ID")!, + Deno.env.get("KEYCLOAK_CLIENT_SECRET")! + ); + break; + case jobs.Job.runTests: + await runTests( + Deno.env.get("API_NAME_AND_VERSION")!, + Deno.env.get("TEST_ENDPOINT")!, + Deno.env.get("MICROCKS_URL")!, + Deno.env.get("KEYCLOAK_CLIENT_ID")!, + Deno.env.get("KEYCLOAK_CLIENT_SECRET")!, + Deno.env.get("RUNNER")!, + Deno.env.get("WAIT_FOR"), + Deno.env.get("SECRET_NAME"), + Deno.env.get("FILTER_OPERATIONS") + ); + break; + default: + throw new Error(`Job ${name} not found`); + } } } diff --git a/example/.fluentci/src/github/config.ts b/example/.fluentci/src/github/config.ts index 830b3d5..10866ef 100644 --- a/example/.fluentci/src/github/config.ts +++ b/example/.fluentci/src/github/config.ts @@ -15,7 +15,7 @@ export function generateYaml(): Workflow { }, { name: "Setup Fluent CI", - uses: "fluentci-io/setup-fluentci@v2", + uses: "fluentci-io/setup-fluentci@v3", }, { name: "Run Dagger Pipelines", diff --git a/example/.fluentci/src/gitlab/config.ts b/example/.fluentci/src/gitlab/config.ts index 744337a..25c0c3b 100644 --- a/example/.fluentci/src/gitlab/config.ts +++ b/example/.fluentci/src/gitlab/config.ts @@ -17,7 +17,7 @@ export function generateYaml(): GitlabCI { ` apk add docker-cli curl unzip deno install -A -r https://cli.fluentci.io -n fluentci - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh + curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.7 sh mv bin/dagger /usr/local/bin dagger version ` diff --git a/example/dagger.json b/example/dagger.json index 7005423..e5f270b 100644 --- a/example/dagger.json +++ b/example/dagger.json @@ -1,4 +1,4 @@ { - "name": "base", + "name": "example", "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main" } \ No newline at end of file diff --git a/example/hello.gql b/example/hello.gql deleted file mode 100644 index cf71de0..0000000 --- a/example/hello.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - base { - hello(src: ".") - } -}